2016-10-26 5 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

私はこれに注意します。エクセルの列の長さは不明です! –

+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 
関連する問題