VBA zum Kopieren und Einfügen von Datei- und Blattnamen wie in der Excel-Zelle angegeben

0

Ich verwende folgenden VBA-Code, um Daten von einem geschlossenen Excel-Blatt zu kopieren. Der Name des Blattes ändert sich zum Datum. Deshalb weise ich den Pfad und den Dateinamen aus der Excel-Zelle zu B1. Jetzt stecke ich nur noch an einer Stelle fest. Ich möchte den in einer anderen Zelle angegebenen Arbeitsblattnamen zuweisen B2.

Sub GetDataClosedBook()

Dim scr As Workbook
Dim FromPath1 As String


'location of the file and data to copy'

Application.ScreenUpdating = False

FromPath1 = Sheets("Status").Range("B1")

Set scr = Workbooks.Open(FromPath1)

ThisWorkbook.Activate

Worksheets("Today_BC").Range("B1:P40000").Formula = scr.Worksheets("12SEP2018").Range("A1:O40000").Formula
Workbooks(2).Close

Application.ScreenUpdating = True
ActiveWorkbook.Save 

End Sub

Jetzt die ("12Sep2018") ändert sich ständig, ich mache es gerade manuell, aber ich möchte es aus der Zelle im Arbeitsblatt zuweisen. Wie kann ich es tun?

Jaldeep Vaishnav
quelle
Ersetzen scr.Worksheets("12SEP2018")... mit scr.Worksheets(Sheets("Status").Range("B2").Value)...
Akina
Es wurde bei Set scr = Workbooks.Open (FromPath1) only ... angehalten und als ----- ** Arbeitsblätter ("Today_BC") verwendet. Range ("B1: P40000"). Formula = scr.Worksheets (Sheets (" Status "). Bereich (" B2 "). Wert). Bereich (" A1: O40000 "). Formel **
Jaldeep Vaishnav
Danke Akina, es funktioniert jetzt, es war ein Fehler von meiner Seite auf der Referenzzelle. Vielen Dank auch für die prompte Antwort. Ich hatte das gleiche versucht, wusste aber nicht, ".value" zu setzen, da ich nicht gut in VBA bin.
Jaldeep Vaishnav
@Akina Wenn Sie Ihre Lösung als Antwort veröffentlichen, kann op sie als Antwort akzeptieren
ChipsLetten

Antworten:

0

Ich möchte den in einer anderen Zelle B2 angegebenen Arbeitsblattnamen zuweisen

In diesem Fall müssen Sie das Zeichenfolgenliteral des Arbeitsblattnamens ersetzen "12SEP2018" mit dem Wert einer Zelle, in der der von Ihnen benötigte Arbeitsblattname gespeichert ist. d.h.

Worksheets("Today_BC").Range("B1:P40000").Formula = _
     scr.Worksheets("12SEP2018").Range("A1:O40000").Formula

muss durch ersetzt werden

Worksheets("Today_BC").Range("B1:P40000").Formula = _
     scr.Worksheets(Sheets("Status").Range("B2").Value).Range("A1:O40000").Formula

Oder speichern Sie den Namen des Zielarbeitsblatts in einer Variablen:

StoreTo = Sheets("Status").Range("B2").Value
Worksheets("Today_BC").Range("B1:P40000").Formula = _
     scr.Worksheets(StoreTo).Range("A1:O40000").Formula
Akina
quelle