2013-06-24 2 views
1

엑셀 워크 시트를 Access 내에서 다른 통합 문서로 복사하려고하는데 아래 첨자가 범위를 벗어나면 계속 오류가 발생합니다. 나는 몇 가지 다른 것들을 시도했지만 못을 박는 것처럼 보일 수 없다. 어떤 도움을 주시면 감사하겠습니다. 액세스 및 Excel 2010을 사용하여 다음과 같이 내 코드는 다음과 같습니다엑셀 시트를 Access 내에서 다른 통합 문서로 복사하려고 시도합니다.

Dim strTaxMonth As String 
Dim strTaxYear As String 
Dim strTabName As String 
Dim objExcel As Excel.Application 
Dim objWB As Workbook 
Dim objWS As Worksheet 
Dim strExcelFile0 As String 
Dim strExcelFile1 As String 
Dim strExcelFile2 As String 

strTaxMonth = Forms!frm_PayrollTax_Report!ReportMonth 
strTaxYear = Forms!frm_PayrollTax_Report!ReportYear 
strTabName = strTaxMonth & strTaxYear & "_PTAX" 
strExcelFile0 = "C:\File0.xlsm" 
strExcelFile1 = "C:\File1.xlsx" 
strExcelFile2 = "C:\File2.xlsm" 


'Copy Worksheet to Yearly File 


Set objExcel = New Excel.Application 
objExcel.Visible = True 
objExcel.DisplayAlerts = False 

If Len(Dir(strExcelFile1)) > 0 Then Kill strExcelFile1 

Set objWB = objExcel.Workbooks.Open(strExcelFile0) 
objWB.Activate 
Set objWS = objExcel.Sheets("PTAX") 
objWS.Activate 
objWS.Unprotect 
objWS.Select 
objWS.Name = strTabName 
objWS.Range("A1:I16").Select 
objWS.Range("A1:I16").Copy 
objWS.Range("A1:I16").PasteSpecial xlPasteValues, xlPasteSpecialOperationNone 
objWS.Range("B19:I28").Select 
objWS.Range("B19:I28").Copy 
objWS.Range("B19:I28").PasteSpecial xlPasteValues, xlPasteSpecialOperationNone 
objWS.Protect 
objWS.Select 
objExcel.Workbooks.Open(strExcelFile0).Sheets(strTabName).Copy After:=objExcel.Workbooks.Open(strExcelFile2).Sheets("YTD PTAX") 
objExcel.Workbooks(strExcelFile0).Activate 
objExcel.ActiveWorkbook.SaveAs strExcelFile1 
objExcel.ActiveWorkbook.Close False 
objExcel.Quit 
Set objExcel = Nothing 
Set objWB = Nothing 
Set objWS = Nothing 

End Sub 

답변

1

그냥이 코드 조각을 사용

Sub test() 

    Dim xlapp as New Excel.Application 
    Dim xlwkb as Workbook 
    Dim xlsht as Worksheet 
    Dim xlwkb2 as Workbook 
    Dim xlsht2 as Worksheet 

    xlapp.DisplayAlerts=False 

    'First workbook and Sheet 
     Set xlwkb=xlapp.Workbooks.Open(strExcelFile0) 
     Set xlsht=xlwkb.Worksheets(1) 

    'Second workbook and Sheet 
     Set xlwkb2=xlapp.Workbooks.Open(strExcelFile0) 
     Set xlsht2=xlwkb.Worksheets(1) 

     xlsht.Range("A1:B16").Copy Destination:=xlsht2.Range("A1") 

     Set xlsht=Nothing 
     xlwkb.Close 
     Set xlwkb=Nothing 

     xlwkb2.Saveas "C:\File.xls" 
     Set xlsht2=Nothing 
     xlwkb2.Close 

    xlapp.DisplayAlerts=True 

     Set xlapp=Nothing 
     xlapp.Quit 

End Sub 
관련 문제