如何引用名为range的工作表?

时间:2019-01-25 11:37:13

标签: excel vba

是否可以在不激活工作表的情况下引用工作表

我有多个具有相同名称范围的工作表,我想在vba中引用这些范围。我希望Sheet2.Range("RangeName")之类的东西能够正常工作,但是仅在Sheet2被激活时才有效。

我能想到的唯一另一种方法是通过Range(Sheet2.Name & "!" & "RangeName"),但这似乎只有在Sheet2.Name不包含空格时才起作用。

我是否需要坚持激活床单(我想防止这种情况),还是有另一种方式来指代范围?

我正在使用Excel2016。非常感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

将工作表名称括在单引号中,以允许使用空格。

this.country.valueChanges.subscribe(() => {
  this.statesFiltered = [];
  this.citiesFiltered = [];
  this.municipalitiesFiltered = [];
  this.changeDetectorRef.detectChanges();
  this.statesFiltered = this.countries.Countries.find(country => {
    return country.CountryName === this.country.value;
  }).States;
});

答案 1 :(得分:0)

您可以尝试:

Option Explicit

Sub test()

    Dim strSheetName As String, strrngName As String
    Dim ws As Worksheet
    Dim rng As Range, rngComplete As Range

    'Select sheet name
    strSheetName = "Sheet1"
    'Set sheet based on name selected above
    Set ws = ThisWorkbook.Worksheets(strSheetName)

    'Set range name
    strSheetName = "Test"
    'Set range based on sheet name & range name
    Set rng = ws.Range(strSheetName)

End Sub

答案 2 :(得分:0)

我有点困惑。经过更多测试后,即使未激活Sheet1.Range("RangeName"),似乎显而易见的Sheet1似乎仍然有效。

谢谢。抱歉打扰你了。我将这个问题留作参考

相关问题