/ /セルからのシートの動的な名前付けおよびワークシートの名前の呼び出し - excel、vba、excel-vba

ワークシートのセルと後の呼び出し名からの動的な名前シート - Excel、vba、excel-vba

以下のコードでは、私は基準「出荷」を使用して「効率」シートからデータを取得することにより、「出荷済み」シート。 「Shipped」シートには、次のようにしてセルから動的に名前を付けます。 Application.ActiveSheet.Name = .Range("A2") そしてそれを使って次のようなものを使ってシートを呼び出します。 Set wsShip = Worksheets.Range("A2") また、データを取得するために動的な基準を使用したいので、代わりに使用します。 Criteria1:="Ship"私は使いたい Criteria1:=.Range("A3") これを行うための何か他の方法はありますか?

Sub DataTable()
Dim wsEff As Worksheet
Dim wsShip As Worksheet
""Application.ActiveSheet.Name = Range("A2")
"Need " Set wsShip = Worksheets(Range("A2"))?
Set wsShip = Worksheets("Shipped")
Set wsEff = Worksheets("Efficiency")
With wsEff
Dim lRow As Long
lRow = .Range("A" & .Rows.Count).End(xlUp).Row
.Range("A1:H" & lRow).AutoFilter Field:=2, Criteria1:="Ship"
Dim rngCopy As Range
"All Columns A:H
Set rngCopy = .Columns("A:H")
"filtered rows, not including header row - assumes row 1 is headers
Set rngCopy = Intersect(rngCopy, .Range("A1:H" & lRow), .Range("A1:H" & lRow).Offset(1)).SpecialCells(xlCellTypeVisible)
rngCopy.Copy
End With
wsShip.Range("A4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Worksheets("Efficiency").ShowAllData
End Sub

回答:

回答№1は1
Set wsShip = Worksheets("Shipped")
Set wsEff = Worksheets("Efficiency")

wsShip.Name = wsEff.Range("A2").Value "for example

wsShip.Activate "changing the name doesn"t change the reference to
"  the sheet you have in "wsShip"