아래 VBA 코드는 작업을 수행하지만 조 변경 부분에서 약 3 초를 잃고 있습니다.GetRows에서 행 조 변경
3 초를 잃지 않고 동일한 결과를 얻을 수있는 방법이 있습니까, 아니면 SQL 쿼리 또는 getrows 프로세스에서 얻을 수 있습니까?
Sub LoadData()
Dim strCon, srtQry As String, tmpArray, tmpArray2, R As Variant, i, j As Long
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
strCon = "DRIVER={MySQL ODBC 5.2 ANSI Driver};" & _
"SERVER=localhost;" & _
"DATABASE=tbname;" & _
"USER=root;" & _
"PASSWORD=pass;" & _
"Port=3306;" & _
"Option=3"
cn.Open strCon
srtQry = "SELECT * FROM `tbname` WHERE `FileDay` = 20131220"
Set rs = cn.Execute(srtQry)
tmpArray = rs.GetRows
cn.Close
tmpArray2 = TransposeArray(tmpArray)
End Sub
TransposeArray :
몇 최적화가 있습니다Public Function TransposeArray(InputArr As Variant) As Variant
Dim RowNdx, ColNdx, LB1, LB2, UB1, UB2 As Long, tmpArray As Variant
LB1 = LBound(InputArr, 1)
LB2 = LBound(InputArr, 2)
UB1 = UBound(InputArr, 1)
UB2 = UBound(InputArr, 2)
ReDim tmpArray(LB2 To LB2 + UB2 - LB2, LB1 To LB1 + UB1 - LB1)
For RowNdx = LB2 To UB2
For ColNdx = LB1 To UB1
tmpArray(RowNdx, ColNdx) = InputArr(ColNdx, RowNdx)
Next ColNdx
Next RowNdx
TransposeArray = tmpArray
End Function
용서해주십시오.하지만 TransposeArray는 무엇입니까? –
@Doug Glancy. 내 excel-vba 배열의 내 버전은 코드를 바꿉니다. 편집하고 포함합니다. –