Excel 将范围地址另存为单元格值,在VBA的后续范围中使用

Excel 将范围地址另存为单元格值,在VBA的后续范围中使用,excel,vba,Excel,Vba,我有一个运行if-then语句的代码。它询问用户是否要重新选择一个范围,如果不想,则使用最后选择的范围。我记下了它的第一部分,但当我存储范围的地址时,我不知道如何回拨它。请参见下面的代码 NewNS = MsgBox("Would you like to pick new Force ID's in the North-South direction?", vbYesNo, "Roof North-South") If NewNS = vbYes Then Worksheets(

我有一个运行if-then语句的代码。它询问用户是否要重新选择一个范围,如果不想,则使用最后选择的范围。我记下了它的第一部分,但当我存储范围的地址时,我不知道如何回拨它。请参见下面的代码

NewNS = MsgBox("Would you like to pick new Force ID's in the North-South direction?", vbYesNo, "Roof North-South")
    If NewNS = vbYes Then
    Worksheets("ShearWalls").Activate
    Do Until CheckNS = vbYes
        On Error Resume Next
        Set rngNS = Application.InputBox("Select your Force ID's (North-South)", "Roof North-South", Type:=8)
        On Error GoTo EndJump
        CheckNS = MsgBox("The cells selected were " & rngNS.Address & " for North-South. Is this correct?", vbYesNo, "Roof North-South")
    Loop
    Worksheets("Reference").Range("B739").Value = rngNS.Address
    Else
        Setrng = Worksheets("Reference").Range("B739").Value
        Set rngNS = Range(Setrng)
    End If

我知道它在某些方面可以简化,我只是想先确保它能工作。谢谢大家!

使用存储为单元格值的地址构建范围。您正在使用
工作表(“剪力墙”)。激活
但不限定存储在
范围(“B739”)
中的地址的父级

虽然从您的叙述中不清楚您要引用的工作表,但我假设您想要的范围是引用工作表,而不是剪力墙工作表

with Worksheets("Reference")
    Setrng = .Range("B739").Value2
    Set rngNS = .Range(Setrng)
end with

我不确定工作表是否重要,但该代码似乎不起作用。我将尝试并描述我正在尝试做的事情,也许一个不同的代码可以工作。假设我在单元格A1中输入
$A$18:$A$20
。我想让我的VBA代码得到我在A1中指定的任何单元格范围,如果我想,我可以手动更改它。谢谢你的帮助@我想我现在明白你的意思了。我将代码的
Else
部分更改为状态
Else Setrng=工作表(“参考”)。范围(“B739”)。值集rngNS=工作表(“剪力墙”)。范围(Setrng)结束,如果
,则转到我需要的值。再次感谢。