2013-10-07 120 views
0

我需要使用vbscript將excel中的值存儲到數組中,然後我需要將此數組中的不同值寫入其他excel。從下面的scipt中,我可以將excel值寫入數組並將其顯示在消息框中,但是我需要將它寫入另一個excel。我收到錯誤 - 「類型不匹配'加入'」在第31行。有人可以看看它並協助,在此先感謝。需要使用vbscript從數組中寫入Excel中的值

Dim MyArray() 
    Dim UniqValues 

    Set objExcel = CreateObject("Excel.Application") 
    Set objWorkbook = objExcel.Workbooks.Open("D:\Read Excel.xls") 


    objExcel.Visible = True 
    objExcel.displayalerts = false 

    i = 1 
    x = 0 

    Do Until objExcel.Cells(i, 1).Value = "" 
    ReDim Preserve MyArray(x) 
    MyArray(x) = objExcel.Cells(i, 1).Value 


    i = i + 1 
    x = x + 1 

    Loop 

    Set objExcel2 = CreateObject("Excel.Application") 
    strPathExcel = "D:\file1.xls" 
    objExcel2.Workbooks.open strPathExcel 
    Set oSheet = objExcel2.ActiveWorkbook.Worksheets(1) 

    oSheet.Cells(1,1).Value = Join(UniqValues) 

    'WScript.Echo Join(MyArray) 
    UniqValues = uniqFE(MyArray) 
    'WScript.Echo Join(UniqValues) 

    Function uniqFE(fex) 
    Dim dicTemp : Set dicTemp = CreateObject("Scripting.Dictionary") 
    Dim xItem 
    For Each xItem In fex 
    dicTemp(xItem) = 0 
    Next 
    uniqFE = dicTemp.Keys() 
    End Function 

    objExcel.Save 
    objExcel.Quit 

回答

2

UniqValues沒有初始化wheb嘗試Join它:

>> Dim UniqValues 
>> X = Join(UniqValues) 
>> 
Error Number:  13 
Error Description: Type mismatch 

呼叫uniqFE()分配前/顯示。

+0

非常感謝您的回覆,現在它正在工作,唯一的問題是,它在My Documents中創建名爲 - 「Resume.XLW」的文件,這個.XLW文件是我的輸出文件的副本,以及何時我正在運行腳本,它正在說 - 「文件Resume.XLW」已存在於此位置的警報框中。不過,我可以禁用警報,但我擔心是否有任何傷害,因爲我必須在我的生產服務器上運行此腳本。另外我需要用逗號分隔結果字符串。 –