excel - Access/Excel VBA 失败

标签 excel vba ms-access

我有一个 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

最佳答案

代码本身没有任何明显的问题。

由于这在您更新办公室时中断了,我冒昧地猜测这是引用的问题。

  • 转到工具->引用->
  • 删除所有对 Excel 对象库的引用
  • 保存并关闭宏工作表(不需要,但只需一秒钟)
  • 重开
  • 添加仅引用最新版本的 Microsoft Excel 1X.0 对象库

  • 如果这不能解决问题,您可能需要在办公室进行维修
  • 控制面板 -> 添加删除程序
  • 找到 Microsoft Excel(或办公套件)
  • 运行修复

  • 最后,建议尝试后期绑定(bind)。删除对 Microsoft Excel Object Library 的引用并将您的声明更新为:
    Dim Xl As Object
    Dim XlBook As Object
    Dim XlSheet As Object
    Set Xl = CreateObject("Excel.Application")
    

    希望这可以帮助!

    关于excel - Access/Excel VBA 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51501024/

    相关文章:

    VBA 绘制边框

    excel - 如何比较两个工作表中的值并在第三个工作表中列出缺失值

    ms-access - 追加到另一个表并避免重复

    c# - 如何使用 linq to ms Access 的 mod 函数?

    excel - 在 VBA 中可以在 ThisworkBook 中获取 Friend 属性吗?

    mysql - 如何在 Excel 中的 MS Query 中使用临时表?

    javascript - 将 HTML 文档的 javascript 部分中的字段提取到表中?地理坐标

    excel - 如果我的工作表有无效数据触发对话框

    sql - SWITCH 输出的 IIF 长度限制为 255

    excel - Displaytag 正在将 CSV 导出到 .xls 文件中