以下のコードをたたいたのですがあまりうまくいきません....
ひとつのフォルダ配下に、エクセルファイル50個があり、それらの特定の場所にあるセルを別のブックに値を入れたく思っています。
以下のコードをコピペしつつ書いたのですが、うまくいかず....(エラーは出ないのですが何も変化が起こらない)
ご教示お願いいたします...
言葉が足らず、すみません。
iiiフォルダ配下にあるエクセルファイル”xlsx”が50個あり、それらには3シート、B9:F11の範囲でそれぞれ必要な値が書き込まれています。(全て同じフォーマット)
その値を取得し、いま開いているワークブックのsheet1にそれら150個あるデータ範囲を参照したく思っています
※すみません、myDirの変数は無意味なコードでした...
Option Explicit
Sub try_1()
Const path = "C:\Users\PC\Desktop\iii"
Const sheet1 = "Page 1"
Const Sheet2 = "Page 2"
Const sheet3 = "Page 3"
Dim fname As String
Dim ws As Worksheet
Dim i As Long
'画面更新停止。開くところを見せない。 Application.ScreenUpdating = False Set ws = ThisWorkbook.Worksheets("Sheet1") i = 1 'Dir関数を使って該当フォルダをLoop fname = Dir(path & "*.xlsx") Do Until Len(fname) = 0 If fname <> ThisWorkbook.Name Then With Workbooks.Open(Filename:=path & fname, _ UpdateLinks:=0, _ ReadOnly:=True) With .Sheets(sheet1) ws.Cells(2, i + 1).Value = .Range("B9:F11").Value End With With .Sheets(Sheet2) ws.Cells(8, i + 1).Value = .Range("B9:F11").Value End With With .Sheets(sheet3) ws.Cells(14, i + 1).Value = .Range("B9:F11").Value End With .Close savechanges:=False End With '次の書き出し位置 i = i + 2 End If fname = Dir() Loop Set ws = Nothing Application.ScreenUpdating = True
End Sub
「うまくいかず」とはどういう動作を想定して実際どういう結果になりそう程度どう異なったのかを質問に記載ください。でないと何が問題なのかがわかりません。
回答2件
あなたの回答
tips
プレビュー