我正在尝试在VBA中编写一个代码,只要主工作表是某一天,就会将其他工作表中的值复制到主工作表中。我的数据设置如下:
在主工作表的A栏中,我有特定月份的日期(mm / dd / yy)。 B列和C列的数据与计算无关,但需要存在。列D到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 :(得分:1)
你在某处遇到错误吗?或者有什么特别是这不是吗?
编辑:
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
确保输入的日期和主表上的日期采用相同的格式。例如,2015年2月2日可以写成“2015年2月2日”,“2015年2月2日”或“2015年2月2日”。否则,似乎这段代码应该可行。
每个日期只会在您的工作表“s4”中出现一次吗?如果不是,第一个实例将在D列中粘贴范围“AccrualPayments”,在H列中粘贴第二个L,等等。如果它们仅显示一次,则这不是问题。