为什么选择范围变量会发生变化?
问题描述:
最初选择的单元格存储在 rngStart
中,以便最后重新选择,因此宏不会将用户带走.但是,存储在 rngStart
中的范围会发生变化.貌似本身.最终是粘贴操作发生的范围.
The originally selected cell(s) are stored in rngStart
to be re-selected at the end, so the user won't be transported away by the macro. However, the range stored in rngStart
changes. Seemingly by itself. It ends up being the range where the paste operation happens.
Sub Macro2()
Application.ScreenUpdating = False
Dim rngStart 'The variable I'm struggling with
Dim ws As Worksheet
Set rngStart = Selection 'Store original selection
Set ws = ActiveSheet
Selection.Cut
'Find an empty cell in column B
For Each cell In ws.Columns(2).Cells
If IsEmpty(cell) = True Then cell.Select: Exit For
Next cell
ActiveSheet.Paste 'Upon executing this line, rngStart changes to the cell being pasted to
rngStart.Select 'Supposed to return to the originally selected range
Application.ScreenUpdating = True
End Sub
答
将其另存为字符串.
Sub Macro2()
Application.ScreenUpdating = False
Dim rngStart As String 'The variable I'm struggling with
Dim ws As Worksheet
rngStart = Selection.Address 'Store original selection
Set ws = ActiveSheet
Selection.Cut
'Find an empty cell in row B
For Each cell In ws.Columns(2).Cells
If IsEmpty(cell) = True Then cell.Select: Exit For
Next cell
ActiveSheet.Paste 'Upon executing this line, rngStart changes to the cell being pasted to
Range(rngStart).Select 'Supposed to return to the originally selected range
Application.ScreenUpdating = True
End Sub