Answers:
我收集你的问题是你的代码只适用于单元格A3,但你希望它能够处理第3行的最后一个公式。
如果B3为空,则代码将起作用,但如果不是,则只会再次复制A3。
如果B3不是空白,则需要将第3行中的最后一个单元格复制到右侧的单元格。
Sub CopyToRight()
Dim WB As Workbook
Dim WS As Worksheet
Set WB = ThisWorkbook
Set WS = Sheets("Sheet1")
With WS
If IsEmpty(.Range("A3").Offset(0, 1)) Then
.Range("A3").Copy .Range("A3").Offset(0, 1)
Else
.Range("A3").End(xlToRight).Copy .Range("A3").End(xlToRight).Offset(0, 1)
End If
End With
End Sub
有一点需要改变:
您可以使用任何一种方式对其进行编码,如果为1,则命名为A3'CopyCell',然后在复制后将其命名为'CopyCell'更改为B3。如果为2,你只需要将Offset(0,1)更改为(0,cols),其中cols =当前cols + 1
Sub Button_Click()
'
' Button_Click Macro
'
Range("CopyMe").Select
ActiveCell.Offset(0, 1).Formula = ActiveCell.Formula
Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 1)).Select
With ActiveWorkbook.Names("CopyMe")
.Name = "CopyMe"
.RefersTo = ActiveCell
.Comment = ""
End With
'
End Sub
在稳健性方面,它并不是很好,因为它假定当前要复制的单元格被命名为“CopyMe”,如果不是,则它将不起作用。
因此,如果有人运行宏,然后删除该列并尝试再次运行它,它将无法工作。