VBA的date不能在Excel 2011中工作?

这里是我的代码,我正在尝试,它在PC上,而不是在Mac上,顺便说一句,运行这个代码,并创build一个Excel表单,命名,添加一个选项卡,更改所述选项卡的颜色,更改名称然后调换数据,同时将单元格的格式和单元格的宽度和高度保持为新的工作表。

这工作,在个人电脑上….但是当我到一台Mac,它不。

我进入参考文献,这就是我所看到的。

在这里输入图像说明

我看到参考编辑控制,和微软脚本运行时间丢失。 我禁用了这两个,脚本仍然给我一个错误:

wbBK2.SaveAs Dir & Application.PathSeparator & "Open Order Report -" & Format(Date, "mm-dd-yyyy") & ".xlsx" 

错误发生在(Date, "mm-dd-yyyy")具体是date部分。 我无法弄清楚为什么这是真的发生。 如果有人可以仔细阅读,给我一个答案和解决scheme,不胜感激。

我得到的Error '9 Subscript Out Of Range是一个Error '9 Subscript Out Of Range我不明白为什么这个错误只显示在Mac上,而不是一台PC。

 Option Explicit Sub OpenOrderReportExport() Dim wsJL As Worksheet 'Jobs List Dim wsPOT As Worksheet 'PO Tracking Dim wsTNO As Worksheet 'Tel-Nexx OOR Dim wsDOO As Worksheet 'Dakota OOR Dim wbBK1 As Workbook 'Open Order Report Dim wbBK2 As Workbook 'New Workbook Dim wsWS1 As Worksheet 'Sheet1 Dim wsWS2 As Worksheet 'Sheet2 Dim wsWS3 As Worksheet 'Sheet3 Dim wsWS4 As Worksheet 'Sheet4 Dim CurrentFile As String, NewFileType As String, NewFile As String, Dir As String, lastrow As Long Set wsJL = Sheets("Jobs List") 'Jobs List Set wsPOT = Sheets("PO Tracking") 'PO Tracking Set wsTNO = Sheets("Tel-Nexx OOR") 'Tel-Nexx OOR Set wsDOO = Sheets("Dakota OOR") 'Dakota OOR Set wbBK1 = ThisWorkbook Set wbBK2 = Workbooks.Add 'New Workbook Set wsWS1 = wbBK2.Sheets("Sheet1") 'Sheet1 Set wsWS2 = wbBK2.Sheets("Sheet2") 'Sheet2 Set wsWS3 = wbBK2.Sheets("Sheet3") 'Sheet3 Application.ScreenUpdating = False ' Prevents screen refreshing. CurrentFile = ThisWorkbook.FullName NewFileType = "Excel Files 2007 (*.xlsx)" Dir = ThisWorkbook.path & Application.PathSeparator & "Reports" wbBK2.SaveAs Dir & Application.PathSeparator & "Open Order Report -" & Format(Date, "mm-dd-yyyy") & ".xlsx" Sheets.Add After:=Sheets(Sheets.Count) Set wsWS4 = wbBK2.Sheets("Sheet4") 'Sheet4 With wbBK2 Dim Sht As Worksheet For Each Sht In Worksheets Sht.Tab.Color = 255 Next End With Sheets("Sheet1").Name = "Jobs List" Sheets("Sheet2").Name = "PO Tracking" Sheets("Sheet3").Name = "Dakota OOR" Sheets("Sheet4").Name = "Tel-Nexx OOR" With wbBK1 'Jobs List Export lastrow = wsJL.Range("B" & Rows.Count).End(xlUp).Row wsJL.Range("A2:N2").Copy wsWS1.Range("A1").PasteSpecial xlPasteAll wsJL.Range("A3:N" & lastrow).Copy wsWS1.Range("A2").PasteSpecial xlPasteValuesAndNumberFormats wsWS1.Range("A2").PasteSpecial xlPasteColumnWidths wsJL.Range("B3:N" & lastrow).Copy wsWS1.Range("B2").PasteSpecial xlPasteFormats wsWS1.Columns("A").Delete 'Tel-Nexx Export lastrow = wsTNO.Range("B" & Rows.Count).End(xlUp).Row wsTNO.Range("A2:Q2").Copy wsWS2.Range("A1").PasteSpecial xlPasteAll wsTNO.Range("A3:Q" & lastrow).Copy wsWS2.Range("A2").PasteSpecial xlPasteValuesAndNumberFormats wsWS2.Range("A2").PasteSpecial xlPasteColumnWidths wsTNO.Range("B3:Q" & lastrow).Copy wsWS2.Range("B2").PasteSpecial xlPasteFormats wsWS2.Columns("A").Delete 'Dakota Export lastrow = wsDOO.Range("B" & Rows.Count).End(xlUp).Row wsDOO.Range("A2:O2").Copy wsWS3.Range("A1").PasteSpecial xlPasteAll wsDOO.Range("A3:O" & lastrow).Copy wsWS3.Range("A2").PasteSpecial xlPasteValuesAndNumberFormats wsWS3.Range("A2").PasteSpecial xlPasteColumnWidths wsDOO.Range("B3:O" & lastrow).Copy wsWS3.Range("B2").PasteSpecial xlPasteFormats wsWS3.Columns("A").Delete 'PO Tracking Export lastrow = wsPOT.Range("B" & Rows.Count).End(xlUp).Row wsPOT.Range("A2:K2").Copy wsWS4.Range("A1").PasteSpecial xlPasteAll wsPOT.Range("A3:K" & lastrow).Copy wsWS4.Range("A2").PasteSpecial xlPasteValuesAndNumberFormats wsWS4.Range("A2").PasteSpecial xlPasteColumnWidths wsPOT.Range("B3:K" & lastrow).Copy wsWS4.Range("B2").PasteSpecial xlPasteFormats wsWS4.Columns("A").Delete End With With wsWS1 .Activate .Range("A1").Select End With End Sub 

MISSING的参考文献是导致问题的原因。 删除那里的复选标记,像date的基本东西将再次开始工作。 如果这些引用对您正在运行的代码至关重要,则必须search出与Mac等效的内容

更多关于参考 – 通常解决“失踪”修复它,但从这里

你所描述的是典型的损坏的引用。 这可能是由于参考文件是开发代码的机器与客户端机器之间的不同版本或位于不同的位置。 我们公司也试图以同样的方式保持所有的机器configuration,但我发现它基本上是不可能pipe理的。

打开任何代码模块(或打开debugging窗口,使用Ctrl-G,只要你没有select“保持debugging窗口在上面”选项)。 select工具| 从菜单栏中引用。 检查所有选定的参考。

如果任何选定的参考文件在其前面有“MISSING:”,请取消select它们,然后退出对话框。 如果您确实需要仅仅取消select的参考(可以通过编译所有模块进行分析),请返回并重新select它们。

如果没有“MISSING:”,则随机select一个附加参考,退出对话框,然后返回并取消select刚才添加的参考。 如果这样做不能解决问题,请尝试取消select尽可能多的所选参考(Office可能不会让您全部取消select),退出对话框,然后返回并重新select您刚才未选中的参考。 (注意:在删除它们之前写下参考文献,因为当你回来的时候它们会有不同的顺序)

是的,因为VBA.xxxx将不起作用,因为Excel不再需要查看所有参考。