내 문제가 이상합니다. Access VBA에 코드가 있습니다. 다른 Excel 파일에서 두 개의 매크로를 실행하고 싶습니다. 첫 번째 매크로는 문제없이 실행되지만 더빙자가 두 번째가되면 런타임 오류 1004가 발생합니다 : "prcPrepareFirstReport 매크로를 실행할 수 없습니다.이 매크로에서 사용할 수없는 매크로 또는 모든 매크로가 비활성화됩니다."Excel의 두 번째 매크로가 실행되지 않습니다.
액세스의 코드 :
Private Sub cmdRaport_Click()
Dim pPath As String
Dim pWorkPath As String
Dim pExcel As Object
Dim pPathToSave As String
Dim pTargetPath As String
pPath = fncFilePicker()
pWorkPath = DLookup("[F_LINK]", "tblLinks", "[F_ID] = 1")
Set pExcel = CreateObject("Excel.Application")
pExcel.Workbooks.Open (pWorkPath)
pMacro = "prcPrepareFile"
pPathToSave = DLookup("[F_LINK]", "tblLinks", "[F_ID] = 2")
pExcel.Run pMacro, pPath, pPathToSave 'this macro is going fine
pMacro = "prcPrepareFirstReport"
pTargetPath = DLookup("[F_LINK]", "tblLinks", "[F_ID] = 5")
pExcel.Run pMacro, pTargetPath 'on this macro I'm given error 1004
pExcel.ActiveWorkbook.Close
pExcel.Quit
Set pExcel = Nothing
End Sub
엑셀 VBA 코드 :
Public pSourceName As String
Sub prcPrepareFile(pPath As String, pPathToSave As String)
Dim pFileToPrepare As Workbook
Dim pSheet As Worksheet
Dim pLastRow As Long
Dim pName As String
Dim i As Long
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
Set pFileToPrepare = Workbooks.Open(pPath)
Set pSheet = pFileToPrepare.Worksheets(1)
pSheet.Rows("1:3").Select
Selection.Delete Shift:=xlUp
pSheet.Rows("2:5").Select
Selection.Delete Shift:=xlUp
pLastRow = pSheet.Cells(pSheet.Rows.Count, "A").End(xlUp).Row
For i = 2 To pLastRow
If pSheet.Cells(i, 1).Value = "" Then
pSheet.Rows(i & ":" & i + 5).Select
Selection.Delete Shift:=xlUp
End If
Next i
pName = pFileToPrepare.Name
pName = pPathToSave & pName
Debug.Print pName
pFileToPrepare.SaveAs pName
pSourceName = pFileToPrepare.Name
With Application
.DisplayAlerts = True
.ScreenUpdating = True
End With
End Sub
Sub prcPrepareFirstReport(pTargetPath As String)
Dim pSourceWorbook As Workbook
Dim pTargetWorkbook As Workbook
Set pSourceWorbook = Workbooks(pSourceName)
Set pTargetWorkbook = Workbooks.Open(pTargetPath)
End Sub
내가 해봤 버전 등
pExcel.Application.Run pMacro
,하지만 작동하지 않습니다 ...
실행 해 보았습니다. 이 두 번째 매크로는 다음과 같습니다.
도와주세요.
첫 번째 코드에서 pTargetPath를 정의한 것처럼 보이지 않습니다 ('Dim pTargetPath as String'). 그 차이를 추가하면 어떤 차이가 있습니까? – finjo
'prcPrepareFile'이 통합 문서를'xlsx' 파일로 저장하고 있습니까? – Comintern
@finjo, 죄송합니다. 입력하는 것을 잊어 버립니다. 정상적인 코드에서는 그렇습니다. – Gadziu