需要使用vbscript从数组中在Excel中写入值

时间:2013-10-07 19:01:59

标签: vbscript

我需要使用vbscript将excel中的值存储到数组中,然后我需要将此数组中的不同值写入其他excel。从下面的scipt我能够将excel值写入数组并在消息框中显示它,但是我需要在另一个excel中编写它。我在第31行收到错误 - “类型不匹配'加入'”。有人请调查并协助,提前致谢。

  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

1 个答案:

答案 0 :(得分:2)

当您尝试UniqValues时,Join未初始化:

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

在分配/显示之前调用uniqFE()。