2016-06-21 290 views
0

我需要使用VBScript將一個Excel工作表的兩列複製到另一個Excel工作表的相同列。這些列彼此相鄰 我正在使用以下代碼,我通過某些搜索獲得了該代碼,並將其更改爲我的需要。如果要複製一列,但它不是將兩列從一個Excel複製到另一列,它工作正常。將兩列從一個Excel工作表複製到另一個工作表

Set objExcel = CreateObject("Excel.Application") 
objExcel.Visible = True 
Set objWorkbook = objExcel.Workbooks.Open("C:\Desktop\Customer.xlsx") 
Set objWorkbook2 = objExcel.Workbooks.Open("C:\Documents\Folder1\Test.xlsx") 

Set objWorksheet = objWorkbook.Worksheets(1) 
objWorksheet.Activate 

Set objRange = objWorkSheet.Range("A1").EntireColumn 
Set objRange = objWorkSheet.Range("B1").EntireColumn 
objRange.Copy 

Set objWorksheet2 = objWorkbook2.Worksheets(1) 
objWorksheet.Activate 

Set objRange = objWorkSheet2.Range("A1") 
Set objRange = objWorkSheet2.Range("B1") 
objWorksheet.Paste(objRange) 

我輸入Excel文件是:

Customer Number Customer Name 
1001 Wendy 
1002 Subway 
1003 McDonalds

我輸出Excel文件具有相同的列名,但目前在這些列沒有值。從輸入Excel複製後,我應該對第二個Excel文件中的這些列具有相同的值。

+0

您的代碼是VBA而不是VBScript。請參閱[here](https://stackoverflow.com/tags/vbscript/info)和[here](http://sdb.planetcobalt.net/vba2vbs.shtml)。 –

+0

@AnsgarWiechers ....抱歉,我認爲它是一樣的。我應該如何使用VB腳本來實現它。我想在VBScript中使用它。請爲新手道歉。 – adit

+0

@AnsgarWiechers ...是的,我做了,現在我正在嘗試創建一個VB腳本 – adit

回答

0
Set objRange = objWorkSheet.Range("A1").EntireColumn 
Set objRange = objWorkSheet.Range("B1").EntireColumn 

以上兩個語句先選擇列A,然後選擇列B.要選擇2列使用這樣的事情:

Set objRange = objWorkSheet.Range("A:B").EntireColumn 

你甚至都不需要分配選擇一個變量。只需調用對象上的方法:

objWorkSheet.Range("A:B").EntireColumn.Copy 
objWorkSheet2.Paste objWorkSheet2.Range("A1") 
+0

非常感謝。這是現在複製兩列,但我有另一個挑戰。在這個過程中,它會打開excel文件並且不會關閉它,或者最好在後臺執行該操作。我用一個新的代碼更新了我的帖子,它不會讓我得到我想要的 – adit

+0

請不要移動目標。如果您有一個新問題:發佈一個新問題。如果您發現了一個有助於解決當前問題中所述問題的答案:請考慮[接受該答案](http://meta.stackoverflow.com/a/5235)。 –

+0

當然....並再次感謝。我將打開另一個線索提出新的問題 – adit

相關問題