【发布时间】:2010-11-10 20:38:17
【问题描述】:
您好,我正在尝试创建一个宏,该宏具有一个循环,该循环为每个站复制第 1 列 (VOL) 下的函数和第 2 列 (CAPACITY) 下的另一个函数。这是我目前所拥有的:
Sub TieOut()
Dim i As Integer
Dim j As Integer
For i = 1 To 3
For j = 1 To 3
Worksheets("TieOut").Cells(i, j).Value = "'=INDEX('ZaiNet Data'!$A$1:$H$39038,MATCH('INDEX-MATCH'!Z$7&TEXT('INDEX-MATCH'!$A9,"m/dd/yyyy"),'ZaiNet Data'!$C$1:$C$39038,0), 4)"
Next j
Next i
End Sub
我想要的图片如下:你可以看到我已经手动复制并粘贴了我的两个函数到每一列。我只需要一个可以循环的宏。
我想在每个 Station 的 VOL 列中循环的功能是:
=INDEX('ZaiNet Data'!$A$1:$H$39038,MATCH('INDEX-MATCH'!Z$7&TEXT('INDEX-MATCH'!$A438,"M/DD/YYYY"),'ZaiNet Data'!$C$1:$C$39038,0), 4)
我想在每个 Station 的 CAPACITY 列中循环的功能是:
=INDEX('ZaiNet Data'!$A$1:$H$39038,MATCH('INDEX-MATCH'!Z$7&TEXT('INDEX-MATCH'!$A438,"M/DD/YYYY"),'ZaiNet Data'!$C$1:$C$39038,0), 5)
有人可以帮忙吗?谢谢!
更新
****如何使循环自动运行,而无需手动将公式输入前两个单元格并单击宏?
另外,如何使循环遍历所有列/行? (横向)****
我添加了两个屏幕截图来说明我的意思。以下是我当前的代码。 谢谢!
Sub Loop3()
Selection.Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(-1, 1).Select
Selection.Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(0, -1).Select
Dim i As Integer
Dim j As Integer
With Worksheets("Loop")
i = 1
Do Until .Cells(10, i).Value = "blank"
For j = 1 To 10
.Cells(j, i).Formula = "=INDEX('ZAINET DATA'!$A$1:$H$39038,MATCH(Loop!E$7&TEXT(Loop!$A9,""M/D/YYYY""),'ZAINET DATA'!$C$1:$C$39038,0),4)"
.Cells(j, i + 1).Formula = "=INDEX('ZAINET DATA'!$A$1:$H$39038,MATCH(Loop!E$7&TEXT(Loop!$A9,""M/D/YYYY""),'ZAINET DATA'!$C$1:$C$39038,0),5)"
Next j
i = i + 2
Loop
End With
Selection.Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(-1, 1).Select
Selection.Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(0, -1).Select
End Sub
【问题讨论】:
-
@Techgirl09,如果你还在关注这个问题,我知道有一种更简单的方法可以做到这一点。 2个问题:公式复制到的范围是否始终相同(即您可以将其设为命名范围)吗?并且您希望它在工作表激活时触发,还是其他什么?
-
好像是kevin在你截图的时候给你发了邮件,请务必回复他