標題:
[發問]
如何正確宣告,避免強制轉型時降低速度
[打印本頁]
作者:
PKKO
時間:
2015-5-29 10:01
標題:
如何正確宣告,避免強制轉型時降低速度
本帖最後由 PKKO 於 2015-5-29 10:02 編輯
EX :
For j = 1 To UBound(Rng4, 2)
'找出陣列的C
If CStr(RNG(1, i)) = CStr(RNG2(1, j)) Then
c = j
Exit For
End If
Next
複製代碼
這是原本的作法
比較的時候要兩邊同時轉型成字串,筆免因型別不同而沒有正確比對
但這樣似乎比較慢
有甚麼方式可以在一開始就讓rng這個陣列的內容都限制為字串呢?
可是陣列來源是來自於 Rng=[a1].currentregion
作者:
GBKEE
時間:
2015-5-29 13:11
回復
1#
PKKO
Option Explicit
Sub Ex()
Dim Ar() As String, Ar1(), i, ii
Ar1 = UsedRange.Value
ReDim Ar(1 To UBound(Ar1, 1), 1 To UBound(Ar1, 2))
For i = 1 To UBound(Ar1, 1)
For ii = 1 To UBound(Ar1, 2)
Ar(i, ii) = Ar1(i, ii)
Next
Next
End Sub
複製代碼
[attach]21061[/attach]
作者:
PKKO
時間:
2015-5-29 14:12
回復
2#
GBKEE
感謝超版大大的回覆
但我想問的是這個部分,要如何能這樣宣告?
Dim Ar() As String, Ar1()
As String
, i, ii
Ar1() = [a1].CurrentRegion'這行會錯誤
作者:
bobomi
時間:
2015-5-29 14:46
本帖最後由 bobomi 於 2015-5-29 14:56 編輯
EXCEL 出來的全部都是 Variant
你無從改變他
強制轉型是必然的
VB也沒有支援陣列直接轉型這種東西 ( AR_String( ) = AR_Variant( ) )
作者:
PKKO
時間:
2015-5-29 16:11
回復
4#
bobomi
感謝!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)