我有这段代码:
Sub Button26_Click()
Dim s1, s2
Set s1 = Worksheets("Invoice Generator")
Set s2 = Worksheets("Past Invoices")
With s2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).EntireRow
.Cells(, "a").Value = s1.Range("f27").Value
End With
End Sub
单击按钮时,将单元格f27(最初)从第1页复制到第2页(每次在新行上)。但是,如果我改变" a"对于任何其他单元格引用,数据只会被复制一次 - 后续点击不起作用。
有人有什么想法吗?感谢。
答案 0 :(得分:0)
您正在设置位置,从A列的底部开始,向上看第一个非空白单元格,然后向下偏移一行到空白单元格。如果你从这个位置开始,但是将值填充到从B列开始的行中,那么你永远不会在A列中填充那个空单元格,因此对同一例程的后续调用将重新定位到完全相同的位置。如果要将列B用作目标,则需要根据列B中的第一个空白单元格而不是列A来定位新的值传输。
Dim targetCOL as long
targetCOL = 2
With s2.Cells(Rows.Count, targetCOL).End(xlUp).Offset(1, 0).EntireRow
.Cells(, targetCOL).Value = s1.Range("f27").Value
End With
由于您必须更改定位方法和值的目标的列,因此将字母列引用或数字列索引放入变量是有意义的,以便更改它将在两者中更改它地方。在上面提到的修改中,我使用了列的数字索引来设置列B.