2014-11-18 2 views
-2

기본적으로 매일 업데이트되며 매일 자동으로 인쇄되도록 설정할 수있는 워크 시트가 있습니다. 매주 금요일에 마지막 7 일분의 데이터 (7 일 = 마지막 행 7)를 인쇄합니다.VBA EXCEL 날짜를 기준으로 인쇄 범위 설정

.vbs 매크로를 실행하는 작업 스케줄러 덕분에 자동으로 Excel 워크 시트를 열고 인쇄 한 다음 닫을 수있었습니다.

전체 워크 시트가 아닌 현재 주 데이터 만 인쇄하는 마지막 단계를이 자동화에 추가하는 방법은 무엇입니까?

그래서 내가 지정할 수있는 열 범위가 필요하고 행 범위에 대해 Excel의 오늘 기능과 함께 사용하는 것이 아마도 무엇입니까? 심지어 가능하다면.

+0

코드에서 문제가 발생할 어디에 당신이 우리를 보여줄 수 있도록 코드를 공유하는 것이 좋다. – Chrismas007

+0

@ Chrismas007 잘 알아두면 좋겠지 만이 특별한 경우에는 작업중인 워크 시트> 인쇄 워크 시트> 작업 시트 닫기와는 별도로 작업 코드가 없습니다. 하지만 여전히 여기있다 : '희미한 XLApp 희미한 XLWkb xlApp 설정 = CreateObject를 ("이 Excel.Application") xlapp.visible = 사실 xlapp.workbooks.open "C : \ 사용자 \ 사용자 \ 바탕 화면 \의 luboil. xlsx " xlapp.activeworkbook.worksheets ("sheet2 "). 인쇄물 xlapp.activeworkbook.close xlapp.quit' 그리고이 작업 실행자를 통해 작업 스케줄러를 실행합니다. 인쇄하기 전에 인쇄 범위를 지정하기 만하면되지만 워크 시트 내의 매크로를 사용하면됩니다. – satyrikongr

답변

0

항상 지난 7 행의 경우, 항상

Dim XLApp 
Dim XLWkb 
Set XLApp = CreateObject("Excel.Application") 
xlapp.visible = true 
xlapp.workbooks.open "C:\Users\User\Desktop\luboil.xlsx" 
    Dim LastRow As Long 
    Dim LastCol As Long 
     LastRow = xlapp.activeworkbook.worksheets("sheet2").Range("A" & .Rows.Count).End(xlUp).Row 
     LastCol = xlapp.activeworkbook.worksheets("sheet2").Cells(LastRow, Columns.Count).End(xlToLeft).Column 
     xlapp.activeworkbook.worksheets("sheet2").PageSetup.PrintArea = xlapp.activeworkbook.worksheets("sheet2").Range(Cells(LastRow - 7, 1), Cells(LastRow, LastCol)).Address 
xlapp.activeworkbook.worksheets("sheet2").printout 
     xlapp.activeworkbook.worksheets("sheet2").PageSetup.PrintArea = "" 
xlapp.activeworkbook.close 
xlapp.quit 
+0

"ThisWorkbook"엑셀 객체 워크 북에 코드를 놓았습니다. 일반 워크 시트가 아니라 코드가 워크 시트 시작시에 실행되도록했습니다. 유효하지 않거나 규정되지 않은 참조 개별 매크로로 설정하더라도 수동으로 실행하십시오. 여전히 동일한 오류가 발생합니다. – satyrikongr

+0

기존 코드에 내 코드를 넣어야합니다 ...이를 반영하도록 코드를 업데이트합니다. – Chrismas007