是否可以在不激活工作表的情况下引用工作表?
我有多个具有相同名称范围的工作表,我想在vba中引用这些范围。我希望Sheet2.Range("RangeName")
之类的东西能够正常工作,但是仅在Sheet2
被激活时才有效。
我能想到的唯一另一种方法是通过Range(Sheet2.Name & "!" & "RangeName")
,但这似乎只有在Sheet2.Name
不包含空格时才起作用。
我是否需要坚持激活床单(我想防止这种情况),还是有另一种方式来指代范围?
我正在使用Excel2016。非常感谢您的帮助。
答案 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
似乎仍然有效。
谢谢。抱歉打扰你了。我将这个问题留作参考