簡體   English   中英

VBA復制粘貼,運行宏並打印文件

[英]VBA to Copy-Paste, run Macro and print file

所以,我對VBA編程不滿意。 我正在嘗試使VBA代碼執行以下操作:打開兩個電子表格,將全部內容從一個復制到另一個,在工作表2上運行宏,然后打印工作表2並關閉兩者。 我發現了其中每一個的點點滴滴,但沒有設法將它們全部整合在一起。 這是我得到的:

Option Explicit
ExcelMacroExample
Sub ExcelMacroExample()
Dim xlApp
Dim xlBook
Sheets("Lista Definitiva.xlsm").Range("A1:AD135").Value = Sheets ("A.xls").Range("A1:AD135").Value
set xlApp = CreateObject("Excel.Application")
set xlBook = xlApp.Workbooks.open("C:\Users\ADM\Lista Chamada\Lista Definitiva.xlsm", 0, true)
xlApp.Run "Editar_chamada"
Sheets.PrintOut(True)
Sheets.PrintOut
xlApp.Quit
set xlBook = Nothing
set xlApp = Nothing
End Sub

我知道這段代碼很凌亂,而且完全是錯誤的,但是我在VBS上實在是菜鳥。 我更習慣Java和HTML,因此造成了混亂。

一些可以幫助您順利進行的事情:

要查找包含數據的最后一行並復制過來:

Dim LastRow As Long, DestLast As Long
LastRow = Range("A" & Rows.Count).End(xlUp).Row
Sheets("A.xls").Range("A1:AD" & LastRow).Copy
Sheets("Lista Definitiva.xlsm").Range("A1").PasteSpecial xlPasteValues

然后選擇所有項目並設置您的打印區域(甚至將適合的獎勵設置為1頁寬乘1頁長:

DestLast = Sheets("Lista Definitiva.xlsm").Range("A" & Rows.Count).End(xlUp).Row
With Sheets("Lista Definitiva.xlsm").PageSetup
  .Zoom = False
  .FitToPagesWide = 1
  .FitToPagesTall = 1
  .PrintArea = Range("A1:AD" & DestLast).Address
End With

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM