通过VBScript移植Excel
我有一个Excel电子表格,我从其他程序中导出。
它有一些根据less数商业条件着色的行。
现在我必须将整个excel表格与颜色和格式一起转置。
请注意,我必须使用Vbscript来完成此操作。
这是迄今为止我写的代码,但是这个转换没有格式:
sub transpose On Error Resume Next Set objExcel = CreateObject("Excel.Application") objExcel.Visible = False objExcel.Workbooks.Add() set table = ActiveDocument.GetSheetObject( "CH01" ) CellRect = ActiveDocument.GetApplication().GetEmptyRect() CellRect.Top = 0 CellRect.Left = 0 CellRect.Width = table.GetColumnCount CellRect.Height = table.GetRowCount set CellMatrix = table.GetCells( CellRect ) for RowIter=CellRect.Top to CellRect.Width-1 for ColIter=CellRect.Left to CellRect.Height-1 ObjExcel.Cells(RowIter+1, ColIter+1).Value = CellMatrix(ColIter)(RowIter).Text 'msgbox(CellMatrix(ColIter)(RowIter).Text) next next objExcel.ActiveWorkbook.SaveAs("C:\Documents and Settings\prasanna\Desktop\test3.xls") objExcel.Application.Workbooks.Open("C:\Documents and Settings\prasanna\Desktop\test3.xls") objExcel.Application.Visible = True objExcel = Nothing end sub
唷,这花了一些时间和实验,这里是2012年办公室的工作解决scheme
const xlPasteValuesAndNumberFormats = 12 'doesn't work with Excel 2010 ? const xlFormats =-4122 Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True objExcel.DisplayAlerts = false
如果你已经有你的目标xls你可以跳过这些线
Set wbkDest = objExcel.Workbooks.Add wbkDest.saveAs "c:\test2.xls" wbkDest.close
并继续在这里
Set objWorkbook1= objExcel.Workbooks.Open("C:\test1.xls") Set objWorkbook2= objExcel.Workbooks.Open("C:\test2.xls") objWorkbook1.Worksheets("Sheet1").UsedRange.Copy 'we have to do the paste twice, once for the values, once for the formats objWorkbook2.Worksheets("Sheet1").Range("A1").PasteSpecial xlPasteValuesAndNumberFormats objWorkbook2.Worksheets("Sheet1").Range("A1").PasteSpecial xlFormats objWorkbook1.save objWorkbook2.save objWorkbook1.close objWorkbook2.close set objExcel=nothing