Excel 查找范围地址
我想根据单元格值选择一些范围,因为它们每次可能位于不同的列中 我的第一个想法如下,但我不确定这是不是正确的方法Excel 查找范围地址,excel,vba,Excel,Vba,我想根据单元格值选择一些范围,因为它们每次可能位于不同的列中 我的第一个想法如下,但我不确定这是不是正确的方法 Sub RangeBetween() Dim rng1 As Range, rng2 As Range Dim totalRange As Range Dim c1, c2 As Integer c1 = 1 Do Until Name = "A" Name = Cells(1, c1) c1 = c1 + 1 Loop someA=
Sub RangeBetween()
Dim rng1 As Range, rng2 As Range
Dim totalRange As Range
Dim c1, c2 As Integer
c1 = 1
Do Until Name = "A"
Name = Cells(1, c1)
c1 = c1 + 1
Loop
someA= c1 - 1
c2 = 1
Do Until Name = "B"
Name = Cells(1, c2)
c2 = c2 + 1
Loop
someB= c2 - 1
Set rng1 = Range("???")
Set rng2 = Range("???")
Set totalRange = Range(rng1.Address & ":" & rng2.Address)
totalRange .Select
End Sub
谢谢或者您可以使用Match()
c1隐式声明为变量。将尺寸C1设置为长(尺寸C2设置为长;长优先于整数)。此外,您还可以潜在地循环所有列A等。这是您的意图吗?查看Range.Rind()方法。它将返回一个range对象。对不起,range.Find()方法我将查看range.Find,也许这在我的情况下会起作用@QHarr我的目的是在2个单元格之间找到一个范围,比如说,我的文件中有一个名为“ID”、“Name”、“姓氏”的列,但它们每次都在不同的列中。有时那个范围可能在D1:G1,有时在I1:K1,所以我希望我的宏找到那个范围并将它复制到其他地方。这很好,但我不确定它是否能与我下一步要做的工作一起工作。因为我试图使用totalRange(Selection,Selection.End(xlDown)).Select-来选择下面的所有数据,但它不起作用。不知道我怎么能做到。新的问题得到新的帖子。这一个回答了你的问题。@YowE3K你的回答是正确的,我做了错误的假设,它已经被修复了,有趣的是,OP说它工作正常??????“它工作正常”通常意味着“它不会崩溃,所以它一定比我自己写的要好”:对于我的错误,这是漫长的一天。现在才下午1点。
Sub RangeBetween()
Dim totalRange As Range
Dim c1 As Long, c2 As Long
c1 = 0
c2 = 0
With Worksheets("Sheet1") 'Change to your worksheet
On Error Resume Next
c1 = Application.WorksheetFunction.Match("A", .Rows(1), 0)
c2 = Application.WorksheetFunction.Match("B", .Rows(1), 0)
On Error GoTo 0
If c1 > 0 And c2 > 0 Then
Set totalRange = .Range(.Cells(1, c1), .Cells(1, c2))
totalRange.Select
Else
MsgBox "One or both items not found in range"
End If
End With
End Sub