【发布时间】:2018-04-09 11:23:51
【问题描述】:
所以,我是 VBA 的新手,我很难找到我认为应该是一个相当简单的问题的答案。
我有一个包含 2 张工作表的工作簿,我们将其称为 Sheet1 和 Sheet2。
我想将 Sheet1 上 B、D 和 E 列中的数据复制到 Sheet 2 上 A、B 和 C 列中的第一个可用行,并进行以下更改:
表 1 表 2
Col E Col A
Col D Col B
Col B Col C
但我只想在 Sheet1 Column I 中每一行的单元格值为“Y”时复制数据。
我还没有任何代码。
更新: 在听取了回复的建议后,我运行了一个宏记录并得到了这个:
Sub VBlk()
'
' VBlk Macro
' V Block Copy
'
'
Range("B2").Select
Selection.Copy
Sheets("Sheet2").Select
Range("C3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("B3").Select
Sheets("Sheet1").Select
Range("D2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Sheet1").Select
Range("E2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet2").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
【问题讨论】:
-
By "但是如果Sheet1 Column I的值为Y,我只想复制数据"您是指整列还是I列中的单元格值?
-
每一行的单元格值。因此,如果 $I$4 = "Y",那么我想将 $B$4、$D$4 和 $E$4 复制到工作表 2 上的第一个打开的行。
-
你写“还”。为什么不等到你有一些代码并本着这个地方的精神发布呢?使用宏记录器,谷歌,有很多东西可以帮助你开始。