【发布时间】:2016-12-01 12:59:22
【问题描述】:
我有代码可以遍历几张数据。
Dim MyFile As String
Dim erow
MyFile = Dir("C:\My Documents\Tester")
Workbooks.Open ("C:\My Docments\Tester\TestLog.xlsm")
Sheets("Master").Select
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp
Application.DisplayAlerts = False
Do While Len(MyFile) > 0
If MyFile = "ZMaster - Call Log.xlsm" Then
Exit Sub
End If
Workbooks.Open (MyFile)
Application.DisplayAlerts = False
Sheets("Calls").Activate
Range("A2:P2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
ActiveWindow.Close savechanges:=False
erow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Paste Destination:=Worksheets("Master").Range(Cells(erow, 1), Cells(erow, 16))
我有两个问题。
首先,除非循环中的第一个工作簿是我自己“另存为”,否则宏会失败。未保存仅另存为。如果我打开第一个工作簿,请单击相同文件名下的另存为,然后运行它可以工作的宏。我通过宏打开第一个工作簿并另存为来开发了一个解决方法。
其次,也是最重要的。我的子工作簿都有英文格式的日期。但是,当粘贴到 Zmaster 时,它会显示为 12/01/16 而不是 01/12/16。
【问题讨论】:
-
只是为了澄清我在子工作簿中的日期问题,日期格式为 =NOW,即 DD/MM/YY HH/MM/SS 但是当将其粘贴到主工作表中时,它可以正常工作12 月 1 日的 10 天它正在粘贴 MM/DD/YY
-
由于您正在处理多个工作簿,因此从代码中删除激活和选择/选择并对所有内容进行限定将使事情更易于调试和遵循。 stackoverflow.com/questions/10714251/…