我正在尝试选择特定范围的数据,并仅删除我标识的单元格,而不是整个行。
我已经包含了当前的编码。我正在尝试选择所指示单元格左侧的所有内容,删除范围,并将所有单元格向上移动。我无法输入特定范围(例如Range(“ B3:B7”)。delete等),因为该范围将在整个代码中不断变化。我需要它是一个动态范围,它将随着代码的运行而变化。
Worksheets("Sheet1").Select
Cells(2, 6).Select
ActiveCell.Offset(0, 1).Select
col = ActiveCell.Column
row = ActiveCell.Row
Cells(row, col).Select
Range(ActiveCell, ActiveCell.End(xlToLeft)).Select
Range.Delete Shift:=xlToUp
让我知道是否需要更多信息。代码将一直运行,直到我碰到最后一行(Range.Delete)。
提前感谢。
我不能为你写。但是请考虑使用此技术,因为您似乎是手动执行此操作。 Application.Inputbox是一个内置的用户窗体,该窗体将暂停代码执行,直到您查看范围/自行选择为止。
Dim xrng As Range
Dim rngholder As Range
Dim xArray(0 To 20) As Variant
Dim x As Integer
Set xrng = Application.Selection
Set xrng = Application.InputBox("Title", "Make a selection", xrng.Address, Type:=8)
x = 0
'If xrng = "" Then Exit Sub
For Each rngholder In ActiveSheet.Range(xrng.Address)
If rngholder.Value > "" Then
xArray(x) = VBA.Trim(rngholder.Value)
Else
End If
x = x + 1
Next rngholder
在这种情况下,输入框会加载活动单元格,或者在调用宏并将范围填充到数组中时所做的选择。您可以在customize上的这行设置为“ xrng =”行。我将使用'set xrng =逻辑来获取您所描述的选择,因此将所有内容都放在左侧,然后向上并删除。您可以通过对范围进行更多研究来弄清楚。如果您选择此答案,则将有一个手动处理异常的接口,并且由于在我看来您似乎有些眼花,乱,因此在实际使用中可能会从中受益。