Ron*_*eld 5 excel vba transpose worksheet-function
我WorksheetFunction.Transpose在 VBA中使用将混合日期/字符串的一维数组转换为二维数组以写入工作表。
将我的 Windows 区域设置设置为DMY,写回的日期正在切换月/日。
这在本论坛中已经提到过通过该方法Dates进行转换。StringsWorksheetFunction.Transpose
我更深入地研究了这一点。
看起来可以WorksheetFunction.Transpose转换很多数据类型。转置后的结果将是Boolean, Double, 或String
在 VBA 中使用此方法时需要考虑到这一点。
这是一些演示该问题的代码:
Option Explicit
Option Base 1
Sub Tester()
Dim v, w, i As Long
v = Array(CBool(-1), CBool(0), CByte(9), CDbl(1234), CDec(1234), _
CInt(1234), CLng(1234), CLngPtr(1234), CSng(1234), _
CCur(123456), #5/1/2015#, "1234")
w = WorksheetFunction.Transpose(v)
For i = 1 To UBound(v)
Debug.Print v(i), TypeName(v(i)), w(i, 1), TypeName(w(i, 1))
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
调试.打印输出
True Boolean True Boolean
False Boolean False Boolean
9 Byte 9 Double
1234 Double 1234 Double
1234 Decimal 1234 Double
1234 Integer 1234 Double
1234 Long 1234 Double
1234 Long 1234 Double
1234 Single 1234 Double
123456 Currency $123,456.00 String
01-May-15 Date 01-05-2015 String
1234 String 1234 String
Run Code Online (Sandbox Code Playgroud)
编辑另一个问题WorksheetFunction.Transpose
Ubound(1D_array) mod 2^16uBound(1D_array) mod 2^16元素将返回到转置数组。