2016-03-31 23 views
0

誰かがこの構文で私を助けることができるかどうかは不思議です。 F14の値は、IがセルF14にある数になり、列Cと行番号を選択する12セル参照内のVBA変数

あります。 文字列リテラル:そう"cx"はまさにそれです、あなたは二重引用符に入れVBAの何に文字列リテラルある -

Range("f14").Value = x 
Dim x As Integer 

range("cx").select 
+0

セル(範囲( "F14")。値、3)を選択してください。 –

+0

...または 'range(" C "&x).select' – Jeeped

答えて

0
Range("cx").select 

現在地基本を理解する必要があります。

(それは理想的ではないである、 ActiveSheet.Rangeを呼び出すようなものですので、暗黙的にアクティブシートを参照している、)

はい、Range機能は、アドレスを指定しStringパラメータを望んでいる - しかし、xIntegerローカル変数、ではありません文字列リテラル。

最初にまず、モジュールの上部にOption Explicitを貼ってください。

次に、変数の前に宣言します。あなたがxを割り当てるに必要なことを行うために -

は今、あなたは、F14の値を「つかむ」とxに保管する必要があります。あなたの代入演算は逆になります。逆にする場合は、F14の値をXに代入します。すべてがうまくいけばセルはあなたが見つけるれる問題に実行されます数値が含まれていない場合は、Xに格納されているF14の価値を持っている

Dim x As Integer 
x = ActiveSheet.Range("F14").Value 

:周りのことを反転あなたが少しの検索を気にするなら、このサイトでたくさんの解決策があります。

だからxは数値12を持っており、あなたはC12言うStringを必要とする - あなたはCONCATENATExの値を持つ"C"文字列リテラルにする必要があります。 VBAはの文字列連結演算子を返します。&

Dim theAddress As String 
theAddress = "C" & CStr(x) 

CStr機能が本当に必要ではありませんが、それは明示的なあなたがStringに(数)xを変換していることになります。明示的に変換を行わないと、VBAはそれを暗黙的に実行しようとします(それは必ずしも良いことではありません)。

のでtheAddressは今(x12だったと仮定して)値"C12"を含む変数文字列です。

はそのRange機能にそれを与える:

Range(theAddress).Select 

はそれがお役に立てば幸いです。

関連する問題