네트워크 드라이브에 저장된 Excel 스프레드 시트로 사용자 Tasklist
을 내보내는 Outlook 매크로가 있습니다.새로 만든 통합 문서에서 워크 시트를 삭제하려고하면 런타임 오류가 발생합니다. - Outlook VBA
통합 문서가 이미 디렉터리 (If statement taken form here)에 있는지 확인하려고합니다.
하지 존재하는 경우, 올바른 사용자 이름으로 이미 존재하는 경우라는 하나의 워크 시트에 새 통합 문서는 "시트 1"을, 다음 (add statement taken from here)를 엽니합니다
Dim FilePath As String
Dim TestStr As String
Dim objExcel As New Excel.Application
Dim exWb As Excel.Workbook
Dim NAME_s As String
objExcel.DisplayAlerts = False
'Use the Application Object to get the Username
NAME_s = Environ("USERNAME")
FilePath = "the\directory\" & NAME_s & ".xlsx"
TestStr = ""
On Error Resume Next
TestStr = Dir(FilePath)
On Error GoTo 0
If TestStr = "" Then
Set exWb = objExcel.Workbooks.Add(1)
exWb.Worksheets(1).Name = "Sheet1_old"
Else
Set exWb = objExcel.Workbooks.Open("J:\Efficiency Measures\PTaR\" & NAME_s & ".xlsx")
End If
exWb.Sheets.Add().Name = "Sheet1"
exWb.Sheets("Sheet1_old").Delete
If 문을 단계별로 실행하면 TestStr 값이 올바른 첫 번째 조건을 발생 시키지만 exWb.Sheets("Sheet1").Delete
행은 런타임 오류를 발생시킵니다 (통합 문서에는 적어도 하나의 보이는 시트가 있어야 함). 하지만 objExcel.Workbooks.Add(1)
을 가지고 있으면 "Sheet 1"이라는 워크 시트 하나에 지정된 디렉토리에 새 통합 문서를 추가 할 수 있다고 생각했습니다.
생성 된 새 통합 문서에 "시트 1"이름이 있고 FilePath
변수에 지정된 nework 위치에 저장되도록 위의 코드를 어떻게 수정합니까? 이처럼
통합 문서에서 유일한 시트를 삭제할 수 없습니다 - 엑셀은 당신이 "Sheet1의를"이름을 변경하여 ... 하나 다시 추가 시작하는거야 "알고"하지 않습니다 "Sheet1_old"그런 다음 새 시트를 추가 한 다음 "Sheet1_old"를 삭제하십시오. –
@TimWilliams - 감사합니다. 그런데 위의 코드를 수정하여 시트의 이름을 바꾸는 방법은 무엇입니까? 위의 코드를 수정하여 이름 변경 위치를 표시하지만 438 오류가 표시됩니다. - 개체가이 속성을 지원하지 않습니다. – scb998