Ads By Google
VBAで入力規則の設定がうまくいきません どなたかご教示ください。
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim A As String
If Target.Column = 3 And Target.Row >= 77 And Target.Row <= 65536 Then
If Target.Value <> "" Then
Worksheets("Sheet2").Range("A1:Z5").Copy _
Destination:=Target.Offset(5, -1)
For i = 5 To 9
For k = 5 To 23 Step 2
A = "=INDIRECT(" & Target.Offset(0, 3).Address & ")"
Target.Offset(i, k).Validation.Delete
Target.Offset(i, k).Validation.Add Type:=xlValidateList, Formula1:=A
Next
Next
End If
End If
End Sub
「実行時エラー '1004' : アプリケーションの定義またはオブジェクト定義のエラー」が出てしまします。
A = "=INDIRECT(" & Target.Offset(0, 3).Address & ")"
Target.Offset(i, k).Validation.Delete
Target.Offset(i, k).Validation.Add Type:=xlValidateList, Formula1:=A
"=INDIRECT(""" & Target.Offset(0, 3).Address & """)"こうすることや"INDIRECT(" & Target.Offset(0, 3).Address & ")"こうするとエラーは発生しません。これはバグなのでしょうか?
上記だとリストに値がうまく設定されません。
このプログラムの意味ですが・・・
ttp://??www.relief.jp/itnote/archives/000822.php??
こちらにあるような物を参考にしています。
ドロップダウンリストを連動させて使いたいのです。
2009-01-31 08:13の質問
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。
回答(1)
1.
2009-02-01 01:17:07

文字列中の連続する " 2つは、1つの " に置き換えられます。
最初の "文字" の部分で文字列は終わり、そのあと文法に合わないデタラメを書いていると判断されます。
このような場合には、
質問のプログラムでは、
INDIRECT("$B$3")
のような文字列を作りたいので、
文字列中の " を表すために "" を含める必要があります。
"文字"test"文字"のような場合、
文字"test"文字を意図して書いているのですが、
最初の "文字" の部分で文字列は終わり、そのあと文法に合わないデタラメを書いていると判断されます。
このような場合には、
"文字""test""文字"とすることで、"" が " として文字列中に埋め込みできるので意図した文字列とすることができます。
質問のプログラムでは、
INDIRECT("$B$3")
のような文字列を作りたいので、
文字列中の " を表すために "" を含める必要があります。
回答レベル : アドバイス
ありがとうございます!疑問点が解決しました
Ads By Google
コメント
まだコメントがありません



