VBAで、別ブックのセルをFormulaで代入するときの問題 フォルダ内に『集計』とつくファイルが複数あり、 集計とつくファイルの中から(i, 6)に1以上の数字が入力されているセルを 上から順にブックAのシートaに代入していき、 最終行までいったら閉じて次のファイルを開き同じ処理をする、というVBAです。 Sub 集計() Dim bookA As Worksheet Set bookA = ThisWorkbook.Worksheets("集計") Dim fs As FileSystemObject Set fs = New FileSystemObject Dim myfolder As Folder Set myfolder = fs.GetFolder(ThisWorkbook.Path) Dim myfile As File For Each myfile In myfolder.Files If fs.GetFileName(myfile) Like "*集計*" Then Dim wb As Workbook Set wb = Workbooks.Open(Filename:=myfile) Dim bookB As Worksheet Set bookB = wb.Worksheets(1) Dim i As Long For i = 2 To ws1.Cells(Rows.Count, 2).End(xlUp).Row If bookB.Cells(i, 6) >= 1 Then bookA.Range(bookA.Cells(i, 3), bookA.Cells(i, 24)).Formula = bookB.Range(bookB.Cells(i, 3), bookB.Cells(i, 24)) End If Next i wb.Close Set bookB = Nothing Set wb = Nothing End If Next Set myfolder = Nothing Set fs = Nothing End Sub これで実行すると、値の更新のダイアログが出現してしまいます。 ダイアログをApplication.CutCopyMode = Falseで消してみたところ 関数の中のファイル名がおかしくなっており、上手く動かすことができないようです。 value、あるいはcopy→pasteでは上手く動くのですが、 Formulaで上手く代入する方法はないでしょうか。 ほかに必要な情報があれば追記いたしますのでご指示ください。 よろしくお願いいたします。
Visual Basic