CollectTimesheetData.xlsm在A1,B1和C1单元格中具有以下标题:
Employee Name Project Name Grand Billable Hours
我创建了一个Run按钮,其中包含以下宏。我想做的是:
我所拥有的是下面的宏:
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
问题是它运行,没有错误,没有异常但是当前活动工作表中没有写入任何内容。
请问我在这里缺少什么?
答案 0 :(得分:2)
你意识到这一次
Set tempfile = Workbooks.Open(myfiles)
执行,ActiveSheet成为新打开的工作簿中的一些工作表?该代码仅将值从tempfile中的第一个工作表传输到同一文件中的某个任意工作表。