解決済

clip!clip!
Ads By Google

VBAで入力規則を設定したいのですが、うまくいきません・・・

指定している範囲のセルに値が入った時にイベントが起きるようにしています。
値が入ると他のシートよりコピーをしてきて5列はなれたところから1列飛ばしで23列まででそこから5行に入力規則を入れます。
その入力規則の通常の手作業の場合「元の値」にINDIRECT関数をいれて値をターゲットから3つずれたセルを参照したいのですがうまく出来ません。
ご教示いただけないでしょうか???

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) 
    
   If Target.Column = 3 And Target.Row >= 77 And Target.Row <= 65536 Then 
       If Target.Value <> "" Then 
           Worksheets("Sheet2").Range("A1:Z5").Copy Target.Offset(5, -1) 
               For i = 5 To 9 
                   For k = 5 To 23 Step 2 
                       Target.Offset(i, k).Validation.Add Type:=xlValidateList, Formula1:="=INDIRECT(target.offset(0,3))" 
                       '絶対にこんなやり方では無いですよね・・・? 
                   Next 
               Next 
       End If 

   End If 
End Sub

2009-01-30 00:46の質問
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。

回答(1)

1.

2009-01-30 03:18:33ベスト
実際に試してないので自信なしですが・、
"=INDIRECT(target.offset(0,3))"
の部分
"=INDIRECT(""" & Target.Offset(0.3).Address & """)"
にすればいいんじゃないかと思います。
自信度 : 自信なし 回答レベル : アドバイス

ありがとうございます

Ads By Google

コメント

まだコメントがありません

トラックバック(2)

トラックバックURL: