2017-02-08 4 views
0

Hyセルにジャンプするコードを作成しようとしています。VBAコードがセルにジャンプしない

アドレスは変数に格納されます。

2つのオプションを試しましたが、どちらも変数では動作しません。

具体的なセルアドレスで正常に動作します。

Dim stMsg As String 
Dim x As String 

x = Left(stMsg, Len(stMsg)/2) 'x = 'Sheet2'!$C$8 

    '1 Option 
    Application.Goto Reference:="x" 'this works with format: Sheet2!R8C3 

    '2 Option 
    With Range("x") 'this works with format: 'Sheet2'!$C$8 , which is exactly x 
    .Parent.Activate 
    .Activate 
    End With 

それは私

メソッド 'レンジ' を与えたりobject'_Global」」はエラーに失敗しました。

stMsgは、マクロの最初の部分で見つかった変数である。最初に私がxで分割した理由は、stMsgがそれらを両方とも保存しているからです。stMsgの値は 'Sheet2'です!$ C $ 8'Sheet2 '!$ C $ 8

どうすればxで動作させることができますか?

+0

あなたは2つのオプションが働いていると言います。なぜそれらを使用しないのですか? – user3598756

+0

彼らは変数 – tombata

+1

で動作しません@tombata:変数ではないので、私の答えをチェックしてください! ;) – R3uK

答えて

1

xはあなたの変数であり、あなたが唯一だからあなたのコードをよりこのようにする必要があり、文字のx

を含むテキストである、"x"としてそれを使用しようとしている。

Dim x As String 
x = Left(stMsg, Len(stMsg)/2) 

'''Option 1 
Application.Goto Reference:=x 

'''Option 2 
With Range(x) 
    .Parent.Activate 
    .Activate 
End With 

そして、両方のオプションのために働いています: 入力によって提供さOP:'Sheet2'!$C$8'Sheet2'!$C$8

との両方のオプションのために働い:OPによって提供さ
入力:'Sheet2'!$C$8

Sub test_tombata2(x As String) 

'''Option 1 
Application.Goto Reference:=Sheets(Replace(Split(x, "!")(0), "'", vbNullString)).Range(Split(x, "!")(1)) 

'''Option 2 
With Range(x) 
    .Parent.Activate 
    .Activate 
End With 

End Sub 

コードは両方試してみる:以下

Sub TEST_test_tombata() 

test_tombata "'Sheet2'!$C$8'Sheet2'!$C$8" 

test_tombata2 "'Sheet2'!$C$8" 

End Sub 
+0

私はこれを試しました。それは動作しません。 – tombata

+0

@tombata: 'stMsg'の入力内容は何ですか? – R3uK

+0

'stMsg'はマクロの最初の部分から来ます。これは、セル内の数式の先例です。だから、 'stMsg'は式の前例を見つけ(2つの先例があります)、最初の先例に行きたいと思います。私はxを使って分割しますが、うまくいきますが、セルへのジャンプはありません。 – tombata

0

ホープK9があると仮定して、いただきました!あなたのターゲットが含まれています範囲:

Dim rw, col As integer 
rw = Range(Range("K9").Value).Row 
col = Range(Range("K9").Value).Column 
Application.Goto ActiveSheet.Cells(rw + 0, col - 0) 
+0

?なぜ文字列として 'col'を塗りつぶし、数字で記入するのですか? 'rw'はあなたが宣言する方法の変種です。そして、あなたが良いフィットで変数を宣言する場合、 '+ -0'を使う必要はありません。 – R3uK

+0

@ R3uKうん、それは整数でなければなりません。それを編集しますが、それは文字列として機能します。 – Mohammed

+0

@tombataあなたは私の答えを試しましたか? – Mohammed

関連する問題