Excel VBA Farklı Makro Çalışma Kitaplarında Makro Çağırabilir


1

Excel tablosundaki VBA kodu, farklı bir XLSM Çalışma Kitabı dosyasının Makro'sunu arayabilir mi?

Farklı bir XLSM dosyasındaki bir yöntemi çağırması gereken yerel bir XLSM'im var, bu nasıl yapılabilir?

Yanıtlar:


1

Dosya çalışma kitabını açın, açıksa kapatın

codeWorkBookPath = "Directory\"
codeWorkBookName = "file.xlsm"
codeWorkBookFullPathName = UCase(Trim(codeWorkBookPath)) &         
UCase(Trim(codeWorkBookName))
codeWorkbookAlreadyOpen = CommonWorkbook.isWbOpen(codeWorkBookName)
If Not codeWorkbookAlreadyOpen Then
 Workbooks.Open Filename:=codeWorkBookFullPathName, UpdateLinks:=False, 
 ReadOnly:=True
End If

başlangıç ​​elektronik tablosunu etkinleştir

Workbooks(startWorkBook).Activate
Sheets(startWorkSheet).Activate

MacroName'i çalıştırın

argString = "'" & Trim(codeWorkBookName) & "'!" & Trim(macroName)
APPLICATION.Run argString

1

Sayfanın kod adını kullanmak zorundasınız, adı değil.

Paylaştığım resimde "testSheet" yerine "Sheet1" kullanmalısın.

Görmek için tıklayın


0

Seçenek 1:

Her ikisi de, Kaynak ve Hedef Çalışma Kitapları açıksa, aşağıdakilerden herhangi birini kullanabilirsiniz.

Çalışma Kitabı ve Makro adını dinamik olarak değişkenlere atayabilirsiniz, ardından bu kodu yazmanız gerekir.

Application.Run ("'" & workbookname & "'!macroname")

NB Değişken nerede ve içerir .workbooknameFile Path, Workbook & Sheet NamemacronameMacro's Name

Aşağıda düz ileri komuttur:

Application.Run ("'Test7A.xlsm'!Sheet1.Rangetest")

Seçenek 2:

Kaynak Çalışma Kitabı kapalıysa, bu yöntemi kullanmanız gerekir.

Sub myMacro()
    Dim wb As Workbook
    On Error Resume Next
    Set wb = Workbooks("Test7A.xlsm")
    On Error GoTo 0
    If wb Is Nothing Then Set wb = Workbooks.Open(ThisWorkbook.Path & "\Test7A.xlsm")
    Run "Test7A.xlsm!Sheet1.RangeTest"
    wb.Close False
    Set wb = Nothing
End Sub

Nerede Test7A.xlsmÇalışma Kitabı adıdır Sheet1Sac adıdır & RangeTest, aradığınız Makro olduğunu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.