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