2015-08-20 32 views
0

我在Excel文件中有一張表格,其中我想從列1中刪除重複值。在Excel中,當單擊「數據」下的「刪除重複項」時,它具有此功能名爲「代碼」的列是第一列。我試圖把它翻譯成VBScript,不確定如何。我試圖錄制一個宏來獲取VBA語法,但它對於VBScript來說並不相同。我從記錄的宏獲得的代碼是將VBA翻譯爲VBScript以刪除列中的重複項

Sub Macro1() 
    Columns("A:A").Select 
    ActiveSheet.Range("$A$1:$K$523").RemoveDuplicates Columns:=1, Header:=xlYes 
End Sub 
+0

向我們展示你現有的VBScript。你有必要的代碼來打開Excel和你的工作簿嗎? – Bond

+0

是的,我打開了工作簿並打開了工作表。我只是在尋找這個片段。我試過'ws.Range($ A $ 1:$ K $ 523「)。RemoveDuplicates Columns:= 1'但它沒有工作。 –

+0

[Starting point](http://sdb.planetcobalt.net/vba2vbs.shtml )。 –

回答

3

您不能在VBScript中使用命名參數。你只需要按正確的順序提供參數,就像它們出現在函數聲明中一樣。你也不能使用Excel的常量(xlNo,xlYes等),而無需先自己定義它們。

爲了您RemoveDuplicates()功能,VBScript的等效看起來像(假設objExcel是你的應用程序對象):

objExcel.ActiveSheet.Range("$A$1:$K$523").RemoveDuplicates 1 

由於ColumnsRemoveDuplicates()第一個參數。如果你想指定一個標題行,它看起來像這樣:

Const xlYes = 1 
objExcel.ActiveSheet.Range("$A$1:$K$523").RemoveDuplicates 1, xlYes 
+0

同樣,如果我只想刪除A列中的重複項,我可以將.Range部分更改爲'.Range(「$ A $ 1」)。RemoveDuplicates 1'? –

+1

'$ A $ 1'只會考慮那個單元格,你想要指定一個_range_單元格,比如'$ A $ 1:$ A $ 523'。 – Bond