excel - 使用if函数复制/粘贴值

  显示原文与译文双语对照的内容
0 0

我试图在VBA中编写代码,每当主工作表都是特定工作表时将它的复制到主工作表中。 我的数据设置如下:

在主工作表的列A 中,我将日期 (mm/dd/yy) 用于特定月份。 列B 和C 有与计算无关的数据,但需要在那里。 从列到G的列,我想从源工作表中粘贴值。 例如如果A19是 02/13/15,,我希望宏将数据从源工作表拉到单元格的D19:G19.

这是我目前使用的代码。 我愿意帮助你。 谢谢!


Sub newline()

strdate = InputBox("Date")
D = CStr(strdate)
's4 is the master worksheet
Set s4 = Sheets(4)
's5 is the source worksheet that updates every day with different data
Set s5 = Sheets(5)

n = s4.Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count

i = 0

For j = 1 To n
 If s4.Cells(j, 1).Value = D Then
 i = i + 4
 'name of the cells in the source worksheet
 Set r = s5.Range("AccrualPayments")
 r.Copy
 s4.Cells(j, i).PasteSpecial (xlPasteValues)
 End If
Next j

End Sub

时间: 原作者:

0 0

你是否在某个地方遇到错误? 还是有什么特殊的事情?

编辑:


Sub newline()
Dim strdate as String
Dim s4, s5 as Worksheet
Dim i, j, n as Integer

strdate = InputBox("Date")

's4 is the master worksheet
Set s4 = Sheets(4)
's5 is the source worksheet that updates every day with different data
Set s5 = Sheets(5)

n = s4.Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count

i = 0

For j = 1 To n
 If s4.Cells(j, 1) = strdate Then
 i = i + 4
 'name of the cells in the source worksheet
 s5.Range("AccrualPayments").copy
 s4.Cells(j, i).PasteSpecial Paste:=xlPasteValues
 End If
Next j

End Sub

确保输入的日期和母版页上的日期的格式相同。 例如,2年二月份,2015可以写入"2/2/2015","02/2/2015" 或者"02/02/2015"。 否则,似乎该代码应该可以工作。

每个日期在你的工作表"s4"中是否只显示一次? 否则,第一个实例将在第2 列粘贴到第2 列,第2 列在第2 列,第三列,如果它们只出现一次,这将不会是问题。

原作者:
...