2017-10-20 22 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

相关问题