簡體   English   中英

Access / Excel VBA失敗

[英]Access/Excel VBA Failing

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

代碼本身沒有任何明顯的問題。

由於這一點在您更新辦公室時已經破裂,我猜想這是參考的問題。

  1. 轉到工具 - >參考 - >
  2. 刪除對Excel對象庫的所有引用
  3. 保存並關閉宏工作表(不是必需的,但只需要一秒鍾)
  4. 重新打開
  5. 僅參考最新版本的Microsoft Excel 1X.0對象庫

如果這不能解決問題,您可能需要在辦公室進行維修

  1. 控制面板 - >添加刪除程序
  2. 找到Microsoft Excel(或辦公套件)
  3. 運行修復

最后,有人建議嘗試后期綁定。 刪除對Microsoft Excel Object Library的引用,並將聲明更新為:

Dim Xl As Object
Dim XlBook As Object
Dim XlSheet As Object
Set Xl = CreateObject("Excel.Application")

希望這可以幫助!

您是否有可能從Office 14.0升級到15.0或16.0? 按Alt + F11>工具參考,然后在打開的窗口中查找錯誤。 搜索正確的參考並單擊它。 正如其他人所建議的那樣,考慮使用一些后期綁定方法重寫代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM