CollectTimesheetData.xlsm 在 A1、B1 和 C1 单元格中具有以下标题:
员工姓名 项目名称 总计费时间
我创建了一个运行按钮,其中包含以下宏。我想做的是:
- 要求用户选择一个文件夹
- 逐一运行该文件夹中的所有 .xls 文件
- 从所选文件夹内的所有 xls 文件中读取单元格值 B7、B14 和 R28
- 对于第一个 xls 文件,在 A2 中写入 B7,在 B2 中写入 B14,在 C2 中写入 R28,
- 对于第二个 xls 文件,在 A3 中写入 B7,在 B3 中写入 B14,在 C3 中写入 R28,
- 在 A4 中写入 B7,在 B4 中写入 B14,在 C4 中写入第三个 xls 文件的 R28,依此类推。
我所拥有的是以下宏:
Sub Button1_Click()
Dim fd As Object, myfiles As String, result, tempfile As Workbook, j As Long, i As Long
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
If fd.Show <> -1 Then Exit Sub
ChDir (fd.SelectedItems(1))
myfiles = Dir(fd.SelectedItems(1) & Application.PathSeparator & "*.xls")
ReDim result(1 To Rows.Count, 1 To 1)
Application.ScreenUpdating = 0
j = 2
Do While myfiles <> ""
Set tempfile = Workbooks.Open(myfiles)
ActiveSheet.Cells(j, 1).Value = tempfile.Sheets(1).Range("B7")
ActiveSheet.Cells(j, 2).Value = tempfile.Sheets(1).Range("B14")
ActiveSheet.Cells(j, 3).Value = tempfile.Sheets(1).Range("R28")
j = j + 1
tempfile.Close 0
myfiles = Dir
Loop
Application.DisplayAlerts = 1
Application.ScreenUpdating = 1
End Sub
问题是它运行,没有错误,没有例外,但当前活动工作表中也没有写入任何内容。
请问我在这里缺少什么?