我在 Google 上搜索到的大多数解决方案都是关于查找第一个空白列或第一个空白行,但我特别需要在一系列行中找到第一个空白列。
我需要将一些内容从一个工作簿粘贴到另一个工作簿,但首先,我需要在 (100:114) 的行范围内找到第一个空白列。
我可以发布我目前所拥有的内容,但它还远远没有发挥作用。
答案1
所以我的 VBA 技能完全生疏了,但如果你看看 Tom Urtis 在如何:选择范围在 Microsoft Developers Network 上选择未知起始位置的数据范围,它具有您解决所需问题所需的必要对象和方法。以下是该链接中代码的重印:
Sub UnknownRange()
If WorksheetFunction.CountA(Cells) = 0 Then
MsgBox "There is no range to be selected.", , "No cells contain any values."
Exit Sub
Else
Dim FirstRow&, FirstCol&, LastRow&, LastCol&
Dim myUsedRange As Range
FirstRow = Cells.Find(What:="*", SearchDirection:=xlNext, SearchOrder:=xlByRows).Row
On Error Resume Next
FirstCol = Cells.Find(What:="*", SearchDirection:=xlNext, SearchOrder:=xlByColumns).Column
If Err.Number <> 0 Then
Err.Clear
MsgBox _
"There are horizontally merged cells on the sheet" & vbCrLf & _
"that should be removed in order to locate the range.", 64, "Please unmerge all cells."
Exit Sub
End If
LastRow = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
LastCol = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
Set myUsedRange = Range(Cells(FirstRow, FirstCol), Cells(LastRow, LastCol))
myUsedRange.Select
MsgBox "The data range on this worksheet is " & myUsedRange.Address(0, 0) & ".", 64, "Range address:"
End If
End Sub