【发布时间】:2018-07-31 05:12:00
【问题描述】:
我有一个 Access 数据库,该数据库运行一个宏,该宏打开一些 Excel 文件并格式化工作表以备日后使用。这段代码一直运行良好,直到我的公司应用了最新的 Office 更新,现在我收到一个编译错误“找不到方法或数据成员”并且它正在发生在线...
wDate = Mid(XlSheet.Range("B4").Value, 13, Len(XlSheet.Range("B4").Value))
挑出“范围”。我无法弄清楚为什么会发生这种情况。感谢您提供任何帮助。完整代码如下...
Function ExcelProcess()
'Variables to refer to Excel and Objects
Dim MySheetPath As String
Dim Xl As Excel.Application
Dim XlBook As Excel.Workbook
Dim XlSheet As Excel.Worksheet
Dim MyFile As Variant
Dim MySheet As Variant
Dim wBook As Variant
Dim wSheet As Variant
Dim wDate As Variant
Dim rng As Range
Dim cel As Range
MyFile = Array("w1.xlsx", "w2.xlsx", "w3.xlsx")
MySheet = Array("T2_IND", "APPR_IND", "SLG_APPR_IND", "SLG_IND", "C2A_IND", "C3_IND", "C4_IND", "T3_IND", "T4_IND", "C2B_IND")
For Each wBook In MyFile
' Tell it location of actual Excel file
MySheetPath = "\\fs1\Training\CSC_Training_Ops\Training Only\Buzzard\Pulled Data\" & wBook
'Open Excel and the workbook
Set XlBook = GetObject(MySheetPath)
'Make sure excel is visible on the screen
XlBook.Windows(1).Visible = True
For Each wSheet In MySheet
'Define the sheet in the Workbook as XlSheet
Set XlSheet = XlBook.Worksheets(wSheet)
wDate = Mid(XlSheet.Range("B4").Value, 13, Len(XlSheet.Range("B4").Value))
XlSheet.Range("A15").FormulaR1C1 = "WE_Date"
If XlSheet.Range("A16").Value <> "No data found" Then
Set rng = XlSheet.Range(XlSheet.Range("A16"), XlSheet.Range("A16").End(xlDown).Offset(-1))
For Each cel In rng.Cells
With cel
.FormulaR1C1 = wDate
.NumberFormat = "m/d/yyyy"
End With
Next cel
End If
XlSheet.Rows("1:14").Delete Shift:=xlUp
XlSheet.Range("A1").End(xlDown).EntireRow.Delete Shift:=xlUp
Next
XlBook.Close SaveChanges:=True
Next
'Clean up and end with worksheet visible on the screen
Set Xl = Nothing
Set XlBook = Nothing
Set XlSheet = Nothing
End Function
【问题讨论】:
-
您也添加了所有适当的参考资料?
-
@adidashawn6:是的,Access 中的引用(工具...引用)可能需要更新以引用 Office 的更新版本
-
您是否 100% 确定硬编码的工作表名称完全按原样存在于您打开的工作簿中?如果工作表名称看起来合法,请查找前导或尾随空格。如果该数组包含工作簿中每个工作表的名称,请考虑使用
For Each循环迭代工作表,而不是通过Worksheets集合中的硬编码名称提取它们。 -
感谢我们的香蕉人和 QHarr。它是 Microsoft Office 16 对象库。感谢您的帮助!!!
-
@MathieuGuindon 我测试了这个理论,这种情况会出现“运行时错误'9':下标超出范围:'错误。