我一直在寻找答案,并且一切似乎都与我的工作相吻合,但是由于某种原因,它只是无法正常工作。该代码将执行并且不会生成错误消息,但是不会生成新的工作表。对工作表的所有其他编辑都可以正常进行。任何帮助将不胜感激!
我将包括执行此操作的代码部分:
Function CheckCurrSheet() As Boolean
Dim NamePath As String
Dim CurrSheet As String
Dim JohnWB As Workbook
Dim ws As Worksheet
NamePath = "C:\Data Files\2018\" 'Directory path for files.
Set JohnWB = Workbooks.Open(Filename:=NamePath & "John\John Monthly Stats.xlsx")
If Not WorksheetExists(CurrSheet, JohnWB) Then
CheckCurrSheet = False
With JohnWB
Sheets(Sheets.Count).Copy After:=Sheets(Sheets.Count)
End With
Else
CheckCurrSheet = True
End If
End Function
Function WorksheetExists(shtName As String, Optional ByVal wb As Workbook) As Boolean
Dim sht As Worksheet
If wb Is Nothing Then Set wb = ThisWorkbook
On Error Resume Next
Set sht = wb.Sheets(shtName)
On Error GoTo 0
WorksheetExists = Not sht Is Nothing
End Function
更新:我刚刚发现复制工作表的命令正在另一打开的工作簿而不是JohnWB上进行,尽管事实是我用WITH JohnWB语句专门引用了它。...
此时需要打开另一个工作簿,所以我不能只是简单地将其关闭。关于如何特别确保将COPY命令发送到JohnWB工作簿而不是其他地方,有更好的主意吗?
更新:我设法使其正常运行。...
' Old way of trying, which didn't work.
'With JohnWB
' Sheets(Sheets.Count).Copy After:=Sheets(Sheets.Count)
'End With
' New way of trying, which works!
JohnWB.Sheets(Sheets.Count).Copy After:=JohnWB.Sheets(Sheets.Count)
我感谢你们中为协助工作而努力的人!
答案 0 :(得分:1)
尝试看这个人。如果这样做没有帮助,我确定如果您环顾YouTube,您会发现很多像这样的视频。
答案 1 :(得分:1)
从未初始化templateMixins
的值。
这应该解决
CurrSheet
答案 2 :(得分:0)
缺少Sheets(Sheets.Count).Copy After:=Sheets(Sheets.Count)
之前的时间段。
With JohnWB
.Sheets(Sheets.Count).Copy After:=Sheets(Sheets.Count)
End With