以下のコードでは、「出荷」シートの表を条件「出荷」を使用して「効率」シートから引き出します。私はApplication.ActiveSheet.Name = .Range("A2")
のようなものを使って、 "Shipped"シートをセルから動的に名前を付けて、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
あなたは彼らに変数や店舗の事を宣言する方法を知っています。再びそれを行う。 – findwindow
*シートの名前を変更する*または正しいシートを参照するためにセル値を使用するだけでは不明です。後者の場合、2番目にコメントアウトされた行はOKで、A2から取りたいシートを指定する必要があります。 –
私は両方をしたいです。セル参照を使用してシートの名前を変更し、シート名を動的に呼び出すことができます。私はシート名をハードにプログラムしたくありません。 – Kish