こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel VBAでの関数入力

お世話になっております。
ExcelのVBAに関する質問です。

やりたいこととしては
 (1) CSVファイルを開き、そのファイル名を取得後
 (2)「カウントマクロ.xlms」、「件数表」シートのB2から最終行まで、(1)のCSV(Sheet1)を参照先とするCOUNTIF関数を入力する。というものです。 

 Dim OpenFileName As String
OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.csv?")
Workbooks.Open OpenFileName
Filename = Dir(OpenFileName)

Workbooks("カウントマクロ.xlsm").Activate
Worksheets("件数表").Activate
LASTROW = Cells(Rows.Count, "A").End(xlUp).Row

Range("B2").Select
ActiveCell.FormulaR1C1 = _
"=COUNTIF(Filename.Sheet1!R2C10:R10C10,""*"" & RC[-1] & ""*"")"
Range("B2").Select
Selection.AutoFill Destination:=Range(Cells(2, "B"), Cells(LASTROW, "B"))

End Sub

上記のように記述してみたのですが、
"=COUNTIF(Filename.Sheet1!R2C10:R10C10,""*"" & RC[-1] & ""*"")"
の部分Filenameが件数表シートの関数にそのまま表示されており、うまく機能しませんでした。

このようにVBA上で関数を入力する場合、FileNameのように定義したファイル名はどのように記述すればよいのでしょうか。

どなたかご教示いただけましたら幸いです。

投稿日時 - 2020-02-22 13:45:16

QNo.9715617

困ってます

質問者が選んだベストアンサー

"=COUNTIF([" & Filename & "]Sheet1!R2C10:R10C10,""*"" & RC[-1] & ""*"")"

でいかがですか。

投稿日時 - 2020-02-22 14:07:16

お礼

ありがとうございました、うまくいきました。
とても助かりました。

投稿日時 - 2020-02-22 19:24:45

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問