簡體   English   中英

vba 中許多工作簿的數據 - 限定符無效

[英]Data from many workbook in vba - invalid qualifier

我嘗試從同一單元格中的許多工作簿中獲取數據,但出現無效的限定符錯誤

Dim obj() As Workbook
Dim total As Integer

total = 0
Set obj(1) = Workbooks.Open("C:\Users\Riky\Downloads\Compressed\2020\BAGUNUNG\02.06.20\DIANA")
Set obj(2) = Workbooks.Open("C:\Users\Riky\Downloads\Compressed\2020\BAGUNUNG\02.06.20\GULTOM")
Set obj(3) = Workbooks.Open("C:\Users\Riky\Downloads\Compressed\2020\BAGUNUNG\02.06.20\HSR")
Set obj(4) = Workbooks.Open("C:\Users\Riky\Downloads\Compressed\2020\BAGUNUNG\02.06.20\MADI")

total = total + obj(1).Worksheets(1).Cells(33, 5) + obj(2).Worksheets(1).Cells(33, 5) + 
obj(3).Worksheets(1).Cells(33, 5) + obj(4).Worksheets(1).Cells(33, 5)
Cells(1, 1) = total

obj.Close

有人可以幫忙嗎?

代替:

obj.Close

和:

obj(1).Close
obj(2).Close
obj(3).Close
obj(4).Close

單元格總和(多個工作簿)

  • 將這兩個代碼復制到標准模塊中,例如Module1
  • 僅運行Sub ,正在調用Function
  • 調整兩個過程中的常量
  • 假設結果將被寫入包含此代碼的工作簿ThisWorkbook

編碼

Option Explicit

Function getTotal(Optional ByVal aDate As Date) As Double

    Const wsName As Variant = 1 ' can also be e.g. "Sheet1"
    Const Address As String = "E33"
    Const Extension As String = ".xlsx"
    Dim pPeople() As Variant: pPeople = Array("DIANA", "GULTOM", "HSR", "MADI")
    Dim pFirst As String
    pFirst = "C:\Users\Riky\Downloads\Compressed\2020\BAGUNUNG"

    Dim pDate As String: pDate = Format(aDate, "dd.mm.yy")
    
    Dim wb As Workbook, i As Long, Total As Double, wbPath As String
    For i = 0 To UBound(pPeople)
        wbPath = pFirst & Application.PathSeparator & pDate _
               & Application.PathSeparator & pPeople(i) & Extension
        Set wb = Workbooks.Open(wbPath)
        Total = Total + wb.Worksheets(wsName).Range(Address).Value
        wb.Close False
    Next
    
    getTotal = Total
    
End Function

' e.g.:
Sub TodaysTotal()
    
    Const wsName As Variant = "Sheet1"
    Const Address As String = "A1"
    
    Dim Total As Double, aDate As Date
    aDate = DateSerial(2020, 7, 2)
    Total = getTotal(aDate)

    ThisWorkbook.Worksheets(wsName).Range(Address) = Total

End Sub

暫無
暫無

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

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