繁体   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