vbaで特定の列に対しvalidationでドロップダウン(別シートの表を参照)を設定しています。
(例)
A列
1 佐藤
2 鈴木
3 田中
4 (空)
上記リストの中から値を選択すると、チェンジイベントで同じ行の特定のセルに数式が埋め込まれる仕組みです。
ドロップダウンリストから一つ一つ選択するのが面倒な時に、A列のリストと同様の値を外部ファイルか何かから複数コピーして貼り付けをすると以下★の部分に対し、「実行時エラー'13'型が一致しません」と表示されます。
VBA
1' チェンジイベント発生 2Private Sub Worksheet_Change(ByVal Target As Range) 3 Dim x As Long 4 x = Target.Row 5 6 ' イベント範囲を指定 7 If Intersect(Target, Range("H:H")) Is Nonthing Then 8 Exit Sub 9 Else 10 Dim rateFindData As Long 11 ' 選択した値が空でなかったら 12 If Not IsEmpty(Target.Value) Then 13 ' find関数を実行するプロシージャの呼び出し 14 rateFindData = findRateData(Target.Value) ' ★←ここでエラーになる★ 15 ' 戻り値が空でなかったら 16 If Not IsEmpty(rateFindData) Then 17 'K列に数式を埋め込む 18 Cells(x,11).Formula = "=数式" 19 20 End If 21 End If 22 End If 23End Sub 24 25' 別プロシージャ 26Public Function findRateData(ByVal data As String)As Long 27 28Dim rateSheet As Worksheet 29Set rateSheet = Worksheets("担当者") 30 31Dim c As Long 32' find関数でデータを検索 33c = rateSheet.Range("A2:A6").find( _ 34What:=data, LookIn:=xlValues, LookAt:=xlWhole).Row 35 36findRateData = c 37 38 39End Function 40
複数のデータを貼り付けた時のエラーを回避し、貼り付けたセル分一つ一つに上記の処理を走らせることは可能でしょうか?
おそれいりますが、ご回答のほどよろしくお願いいたします。
何故エラーが出ているか分かりますか?
回答1件
あなたの回答
tips
プレビュー