簡體   English   中英

將值從工作表中的單元格復制到一系列單元格中

[英]Copy the value from a cell in a worksheet into a range of cells

我打算執行一個宏,該宏將從指定的路徑打開一個工作簿,並循環瀏覽其工作表,該工作表的名稱專門為“ Januari,Februari,Mars”,以從C34中扣除該值。 C34每次都會記錄一個值,因此它不應更改。 但是我想將其復制到當前工作表中,第一個目標應在AA73處,第二個目標應在AA74等處。我的代碼是

Sub Test()
     Dim myHeadings
     Dim i As Long
     Dim path As String
     path = "C:\pathtofile\file.xlsx"
     Dim currentWb As Workbook
     Set currentWb = ActiveWorkbook
     Dim openWb As Workbook
     Set openWb = Workbooks.Open(path)
     Dim openWs As Worksheet

     myHeadings = Array("Januari", "Februari", "Mars")

     For i = 0 To UBound(myHeadings)
       Set openWs = openWb.Sheets("&i")

       currentWb.Sheets("Indata").Range("AA73+Application.Match(i,Array,False)").Value = openWs.Range("C34").Value

    Next i
 End Sub

但是編譯器說下標超出了行的范圍

Set openWs = openWb.Sheets("&i")

在這里,我嘗試做“ i”,“ i”和“ i”,但是並沒有改變。 另外,我嘗試使用“ ThisWorkbook”代替“ ActiveWorkbook”,但它也無濟於事。 是否有人對如何以更適當的方式實現這一目標有所投入?

編輯:適應Dave的響應,它可以導入工作表。 但是我得到一個錯誤:

currentWb.Sheets("Indata").Range("AA73+Application.Match(i,Array,False)").Value = openWs.Range("C34").Value

在上述代碼段中出現自動化錯誤-2147221080(800401a8)的地方。

您已經將工作表名稱放入一個數組中,因此您可以通過以下方式從該數組中調用工作表名稱:

Set openWs = openWb.Sheets(myHeadings(i))

暫無
暫無

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

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