2012-06-21 28 views
3

我有一個Excel電子表格,我從其他程序中導出。通過vbscript轉置Excel

它具有根據少數商業條件着色的行。

現在我必須將整個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 
+0

首先,解釋一下爲什麼你只能使用VBScript(你確定你不會混淆VBA嗎?)。其次,向我們展示[你已經嘗試過](http://whathaveyoutried.com)以及你被困住的地方,以便我們能夠幫助你。如上所述,您的問題無處可導 – JMax

+0

我只能使用vbscript,因爲我所說的工具只允許我使用Vbscript – user1472309

+1

您確定您的意思不是VBA? Excel中內置的Visual Basic版本? VBScript不是Excel的一部分。 – Orbling

回答

0

唷......,這個成本覈算一些時間和試驗,在這裏辦公2012

工作解決方案
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 
+0

'PasteSpecial'例程有一個'Transpose'參數,這意味着粘貼時會發生轉置。 – 2012-06-25 07:40:41

+0

非常感謝你做了我想要的訣竅......如果你能讓我知道你會發現-4122的值,這將是gr8的幫助。 – user1472309

+1

@ user1472309:我記錄一個宏,然後轉換爲vbscript。獲取常量的值,例如「const xlformats」。你能接受答案嗎? – peter