簡體   English   中英

使用For Each循環遍歷另一個工作簿中的每個單元格

[英]Loop Through each Cells in another workbook with a For Each Loop

有關For Each In表達式的快速問題:
我將此行用於同一文件中但不同工作表中的所有行:

For Each c In tarRng
        count = count + 1
        Debug.Print "c.Value: "; c.Value
        Debug.Print "cAdd: "; c.Address
        Debug.Print "count"; count
Next 

tarRng定義為B列的所有行,它們可以完美工作,它遍歷所有行並輸出該行中的值以及調試屏幕中每個值的地址。 這里有一個后面的功能,我剛才在這里省略了。

現在的問題是:我想在同一文件夾中獲得不同工作簿的B列,但是當我這樣定義它時(這里是固定范圍,因為我只想測試它)。

For Each c In Workbooks("Nvm_Configuration_ASW.xlsm").Worksheets("Tabelle2").Range("B3:B271")   

它只顯示一次值為1的計數,甚至不輸出c.Value或c.Address。 我確信文件和工作表的表達式是正確的,因為我嘗試使用與文件名相同的文件來工作,因此它可以正常工作。

謝謝,Mathias

如果未打開工作簿,則必須使用Workbooks.Open()將其打開:

Public Sub TestMe()

    Dim myCell As Range
    Dim wks As Workbook

    Set wks = Workbooks.Open("C:\Users\Nvm_Configuration_ASW.xlsm")        
    For Each myCell In wks.Worksheets(1).Range("A1:A5")
        Debug.Print myCell
    Next        

End Sub

如果已打開,則您的代碼應該可以正常工作, 應在同一Excel實例中打開它。

默認情況下,它將在同一實例中打開,除非您不做一些其他技巧:

  • 為Excel 2017打開時按Alt
  • 打開Excel文件,然后從較小的內部十字形中將其關閉(對於Excel 2013及更早版本)。

暫無
暫無

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

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