2016-10-26 15 views
0

我正在玩vbscript,以及如何讓我的生活更輕鬆。現在我想運行一個打開excel文件的腳本。將C列(未知行 - 長度)複製到B列,並將其連接到某些內容。如何複製粘貼和連接Excel列與VBScript?

例子:

------------------- 
||| A | B | C | 
------------------- 
|1|ONE | ANY | 11 | 
|2|TWO | ANY | 42 | 
|3|FOUR| ANY | 96 | 
|4|SIX | ANY | 42 | 
------------------- 

這樣:


||| A | B | C | 
------------------- 
|1|ONE |*11* | 11 | 
|2|TWO |*42* | 42 | 
|3|FOUR|*96* | 96 | 
|4|SIX |*42* | 42 | 
------------------- 

到目前爲止,我已經試過這樣:

Option Explicit 
Dim objExcel 

Set objExcel = CreateObject("Excel.Application") 
With objExcel 
    .Workbooks.Open ("Z:\1\one.xlsx") 
    .Visible = False 
    .Range("C:C").Copy 
    .Range("B1").Select 
    .ActiveSheet.Paste 
    .ActiveWorkbook.Close(True) 
    .Quit 
End With 

首先,它給了我一個錯誤,剪貼板是全最好在orde中清理r釋放記憶。其次,我還沒有在因特網上找到vbscript的連接函數。

+0

注意:您複製整列,並把該進'B1'。我相信會拋出一個錯誤。我建議將範圍縮小到任何可能的範圍,比如說「C1:C100」,然後粘貼。或者,將'.Range(「B1」)'改爲'Range(「B:B」)'看看是否有幫助。另外,請注意,您可以使用'&'連接:'= A1&B1'與'= concatenate(A1,B1)'相同。 – BruceWayne

+0

我會注意到,excel列的長度不明! –

+0

當你開始的時候它是未知的,但你總是可以從一個範圍[得到最後一行](http://www.rondebruin.nl/win/s9/win005.htm),然後從那裏開始! – BruceWayne

回答

1

有了一些研究和布魯斯的那萬一有人爲我工作的幫助有興趣:

Option Explicit 
Dim objExcel,LastRow 
Const xlUp = -4162 


Set objExcel = CreateObject("Excel.Application") 
With objExcel 
    .Workbooks.Open ("Z:\1\onest.xlsx") 
    .Visible = False 
    LastRow = .Range("A1048576").End(xlUp).Row 
    .Range("C1:" & "C" & LastRow).Copy 
    .Range("B1").Select 
    .ActiveSheet.Paste 
    Do While LastRow <>0 
     .Cells(LastRow,2)="*"&.Cells(LastRow,3)&"*" 
     LastRow = LastRow - 1 
    Loop 
    .ActiveWorkbook.Close(True) 
    .Quit 
End With