我需要在活动工作表中剪切和粘贴非空值的行数组。 “E5”是我要剪切的行数组中的第一个非空单元格。这个数组只是1:10的数字序列,没有间隙。期望的行为是切断序列并在“F5”处过去。唯一的复杂因素是我需要复制的范围不固定。
尝试:
Sub Update()
ActiveSheet.Range("E5", Range("5:5").End(xlToRight).Address).Copy
ActiveSheet.Range("F5").Select
ActiveSheet.Paste
End Sub
我有一次这个代码,或者至少是“剪切”部分。现在,整个代码块的结果输出是:
请注意,在运行宏之前,我一直确保要剪切的数组完全相同。
什么是正确的方法?
真的,我已经找到了解决方案,但我发现的只是复杂或冗长的宏。而且VBA的结构起初有点不透明,至少对我而言。
答案 0 :(得分:3)
这是你在尝试什么?我已经对代码进行了评论,因此您不应该对它有任何问题。
Option Explicit
Sub Sample()
Dim ws As Worksheet
Dim lCol As Long
'~~> Set this to the relevant worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
'~~> Find the last column which has data in Col 5
lCol = .Cells(5, .Columns.Count).End(xlToLeft).Column
'~~> Directly cut paste
.Range(.Cells(5, 5), .Cells(5, lCol)).Cut .Range("F5")
End With
End Sub