返回列表 上一主題 發帖

為何字典的item導出時會報錯(型態不符合)?

回復 4# 千暉尋
  1. Option Explicit
  2. Sub A新DP判斷()
  3.     Dim CL As Integer, CR2 As Integer, D1 As Integer, D2 As Integer, D As Object
  4.     Dim ar(), X As Integer, E As Variant
  5.     CL = Application.Match("C/L", [a1:a300], 0)  'C/L所在列數
  6.     CR2 = Application.Match("CUP PRINT", [a1:a100], 0)
  7.     D1 = Application.Match("D/P", [a1:a300], 0) + 2  'D/P資料區首列(不含標題列)
  8.     D2 = Cells(CR2, 1).End(3).Row 'D/P資料區末列
  9.     [I:AD].Clear:
  10.     ar = Range(Cells(D1, 1), Cells(D2, 9))
  11.     Set D = CreateObject("Scripting.Dictionary")
  12.     For X = 1 To UBound(ar)  '將OS資料入陣列,item 則以"-"將OS串接
  13.         D(ar(X, 3)) = D(ar(X, 3)) & "+" & ar(X, 2)
  14.     Next
  15.     If D.Count = 0 Then Exit Sub
  16.      '***改橫放不使用>>Application.Transpose
  17.       Cells(D1, "J").Resize(, D.Count) = D.keys ''金額欄
  18.       Cells(D1 + 1, "j").Resize(, D.Count) = D.ItemS ''OS欄
  19.     '直放 **如陣列中元素的字元數有>255 元素 >> 需一一的導出
  20.      X = 1
  21.      For Each E In D.keys
  22.         Cells(D1 + 3, "j").Range("A" & X) = E
  23.         Cells(D1 + 3, "k").Range("A" & X) = D(E)
  24.         X = X + 1
  25.      Next
  26.      '*** '***橫放 使用>>Application.Transpose*********************************
  27.       Cells(D1 + 3, "L").Resize(D.Count, 1) = Application.Transpose(D.keys) '金額欄
  28.        '陣列中元素的字元數有>255  '**使用Application.Transpose會發生錯誤
  29.        ar = D.ItemS
  30.       ar(0) = Mid(ar(0), 1, 256) 'OS欄 -->報錯 改為 ar(0) = Mid(ar(0), 1, 255)看看
  31.       Cells(D1 + 3, "M").Resize(D.Count, 1) = Application.Transpose(ar) ''OS欄 -->報錯
  32. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 【為善競爭】人生要為善競爭,分秒必爭。
返回列表 上一主題