2016-06-21 160 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

相关问题