[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA Match関数 1004のエラーについて』(ぜん)
こんにちは
初めてVBAでmatchの関数を利用します。
下記のコードを作成しました。
C列に"20"と入力されている行のK列に"2400"を入力しその下のセルにIF関数が入るようにしたいです。
ステップインで実行していくと
>Cells(r + 1, 11).Formula = "=IF(cells(r,6))="""",IF(cells(r+1,6)="""","""",2400),"""")"
ここまで希望通りの動作をします。
しかし1004のエラーとなってしまいますがなぜでしょうか?
これは"20"があっても出るものなのでしょうか?
Sub test()
Const KEY = 20 Dim r As Long
On Error GoTo ERR_HNDL
r = WorksheetFunction.Match(KEY, Range("C:C"), 0) Cells(r, 11).Value = 2400
Cells(r + 1, 11).Formula = "=IF(cells(r,6))="""",IF(cells(r+1,6)="""","""",2400),"""")"
Exit Sub
ERR_HNDL:
Select Case Err.Number Case 1004 MsgBox "『" & KEY & "』は見つかりませんでした。" Case Else MsgBox "エラーが発生しました。" End Select Err.Clear
Columns("M:M").Select Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _ Formula1:="=1", Formula2:="=9" Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 16776960 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = True
End Sub
< 使用 Excel:Excel2007、使用 OS:Windows7 >
数式は文字列にしないと...
Cells(r + 1, 11).Formula = "=IF(" & cells(r,6).address(0,0) & ")="""",IF(" & _ cells(r+1,6).address(0,0) & "="""","""",2400),"""")" (seiya) 2018/05/11(金) 15:08
違ってたらごめんなさいですけど、
Sub test()
Debug.Print "=IF(cells(r,6))="""",IF(cells(r+1,6)="""","""",2400),"""")" End Sub
↑のコードを実行してイミディエイトに出力される文字列をそのまま数式バーに貼り付けてみてください。
たぶんExcel君から怒られると思います。
実は↓の様にしたかったんじゃないかと推測しますがどうでしょうか?(ワークシート関数にCell関数はあれど、Cells関数はないので・・)
"=IF(" & Cells(r, 6).Address & ")="""",IF(" & Cells(r + 1, 6).Address & "="""","""",2400),"""")"
(もこな2) 2018/05/11(金) 15:23
ご教授頂いた通り変更しましたが、変わずでした。
他に原因があるのでしょうか?
(ぜん) 2018/05/11(金) 15:52
余計な")"
Cells(r + 1, 11).Formula = "=IF(" & cells(r,6).address(0,0) & "="""",IF(" & _ cells(r+1,6).address(0,0) & "="""","""",2400),"""")"
(seiya) 2018/05/11(金) 16:01
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.