2017-10-20 145 views
2

VB新手腳本。 我的問題是2部分: 我需要從一個Excel表複製450列標題到另一個Excel數據表。 標題具有表格邊框並被格式化。我在網上查找了一些例子,並將這個腳本放在一起進行復制。未使用粘貼特殊複製單元格邊框

但是,單元格邊框不被複制。只是文本 - 所以標題格式不會結轉。

下面是我的代碼。

這是不是粘貼邊界的正確方法?

一旦用邊框複製,如果我要將此工作表複製到另一個工作表,那麼單元格邊框和格式化是否也會繼續?

 Set objExcel = CreateObject("Excel.Application") 
     objExcel.Visible = True 

     Set objWorkbook1= objExcel.Workbooks.Open("header.xlsx") 
     Set wksSource = objWorkbook1.Worksheets("Sheet1") 
     Set objWorkbook2= objExcel.Workbooks.Open("IS3.xlsx") 
     Set wksDest = objWorkbook2.Worksheets("TD") 

     Set objRange = objWorkbook1.Worksheets("Sheet1").Range("A1:IZ3").Copy 
     wksDest.Range("A1:IZ3").PasteSpecial objRange 
     objWorkbook1.Save 
     objWorkbook1.Close 

     objWorkbook2.Save 
     objWorkbook2.Close 

     objExcel.Quit 
     Set objExcel = Nothing 
     Set wksSource = Nothing 
     Set wksDest = Nothing 
+0

可能更容易複製整個工作表並刪除額外的範圍(如果需要)。如果標題單元在向下滾動時保持固定在頂部,則這些可能不是邊界,而是凍結窗格https://support.office.com/zh-cn/article/Freeze-panes-to-lock-rows-and-列-dab2ffc9-020d-4026-8121-67dd25f2508f – Slai

回答

1

你的粘貼沒有指示。你需要打兩次。一次爲格式,一次爲值。

wksDest.Range("A1:IZ3").PasteSpecial Paste:=xlPasteFormats objRange 
wksDest.Range("A1:IZ3").PasteSpecial Paste:=xlPasteValues objRange 
+1

使用vbscript你將無法使用vba常量。需要找出xlPasteFormats和xlPasteValues的實際值並使用它們 – Dave

相關問題