Arrays 如何在工作表上写入数组(行方式完成,但列方式不工作)

Arrays 如何在工作表上写入数组(行方式完成,但列方式不工作),arrays,vba,Arrays,Vba,您可以使用Application.Transpose将值从列复制到行中 Dim rng As范围 '设置源范围 设置rng=范围(“A1:A5”) '复制到列中 范围(“C1”)。调整大小(rng.Rows.Count,1)。值=rng.Value “复制到一行 范围(“E1”).Resize(1,rng.Rows.Count).Value=Application.Transpose(rng.Value) 请注意,您可以转置的数组大小有一个上限(我想大约有65k个项)上面的代码只是使用数组处理

您可以使用
Application.Transpose
将值从列复制到行中

Dim rng As范围
'设置源范围
设置rng=范围(“A1:A5”)
'复制到列中
范围(“C1”)。调整大小(rng.Rows.Count,1)。值=rng.Value
“复制到一行
范围(“E1”).Resize(1,rng.Rows.Count).Value=Application.Transpose(rng.Value)

请注意,您可以转置的数组大小有一个上限(我想大约有65k个项)

上面的代码只是使用数组处理目标工作表(仅工作行方式),但我想知道列方式写入。可能它与“.Range”(“ab5”).Resize(UBound(t1Arr,1)).Value=t1Arr”这段代码有关
Sub OpenFile()
    Dim temp_fdr As String
    Dim test_fdr As String
    Dim model_selector As String
    Dim path As String
    Dim Keyword_range As Range
    '--------------------------------------------------------복사 할 영역 선택 변수
    Dim Cont_R, Mov_T, Mov_V, Open_V As String
    Dim Cont_R_row, Mov_T_row, Mov_V_row, Open_V_row, Test_T_row As Integer
    Dim Cont_R_col, Mov_T_col, Mov_V_col, Open_V_col, Test_T_col As Integer
    Dim realDataStartRow As Integer
    Dim realDataEndRow As Long
    Dim t1Rng As Range
    Dim t2Rng As Range
    Dim t3Rng As Range
    Dim t4Rng As Range
    Dim t5rng As Range
    Dim t1Arr, t2Arr, t3Arr, t4Arr, t5Arr
    '------------------------------------------------------- 시험 폴더 지정을 위한 변수 선언
    today_total = Format(Date, "yyyy-mm-dd")
    today_year = Format(Year(Date), "0000")
    today_month = Format(Month(Date), "00")
    today_day = Format(Day(Date), "00")
    Dim lastModifiedFdr As String
    '-------------------------------------------------------- 그래프 오리지널 폴더 -------------------나중에 바꿀 path
    Dim chtWorkbookPath As String
    Dim chtWorkbook As Workbook
    Dim chtSheet As Worksheet
    chtWorkbookPath = ThisWorkbook.path
    Debug.Print chtWorkbookPath
'Set chtWorkbook = "C:\Users\bjkwack\Desktop\실시간그래프도식화작업중\" & today_year & "-" & today_month & ".xlsm"
'    Debug.Print chtWorkbook

    
    '-------------------------------------------------------- 현재 시험폴더 찾아가기------------------------------
'    lastModifiedFdr = Module2.lastModifiedFdr
    'MsgBox lastModifiedFdr
    
    If Len(lastModifiedFdr) = 0 Then
        temp_fdr = "\\172.30.145.135\evr data\" & today_year & "-" & today_month & "\" & today_day & "\"
        lastModifiedFdr = Module2.LastFolder(temp_fdr)
    End If
    
    test_fdr = "\\172.30.145.135\evr data\" & today_year & "-" & today_month & "\" & today_day & "\" & lastModifiedFdr & "\"
    'MsgBox test_fdr
    '-----------------------------------------------------------------------------------------
    
    '---------------------------------------------------------------------------------------- 시험 파일 위치지정
    On Error Resume Next
    Application.DisplayAlerts = False
    
    Workbooks.Open Filename:=test_fdr & "\" & today_total & ".xls", ReadOnly:=True
    
    Application.DisplayAlerts = True
    Debug.Print test_fdr
    Debug.Print lastModifiedFdr
    'Workbooks("" & today_total & ".xls").Sheets(1).Activate
    
    With ActiveSheet.UsedRange  '---------------------------------------------------------- s = 출력물에서 2월 데이터 영역
        Set Keyword_range = .Find(What:="접촉저항", LookAt:=xlWhole)    '--------------------- 접촉저항 행 열 요소 찾기
        On Error Resume Next
        'Cont_R_row = Keyword_range.Row
        On Error Resume Next
        Cont_R_col = Keyword_range.Column
        Debug.Print Cont_R_col
        
        Set Keyword_range = .Find(What:="동작시간(ms)", LookAt:=xlWhole)    '--------------------- 동작시간 행 열 요소 찾기
        On Error Resume Next
        'Mov_T_row = Keyword_range.Row
        On Error Resume Next
        Mov_T_col = Keyword_range.Column
        Debug.Print Mov_T_col
        
        Set Keyword_range = .Find(What:="석방전압(V)", LookAt:=xlWhole)    '--------------------- 개방전압 행 열 요소 찾기
        On Error Resume Next
        'Open_V_row = Keyword_range.Row
        On Error Resume Next
        Open_V_col = Keyword_range.Column + 1   '--------------------*** 실제 데이터 열 보다 한칸 +1 에 있음 ***********
        
        Set Keyword_range = .Find(What:="흡인전압(V)", LookAt:=xlWhole)    '--------------------- 동작전압 행 열 요소 찾기
        On Error Resume Next
        'Mov_V_row = Keyword_range.Row
        On Error Resume Next
        Mov_V_col = Keyword_range.Column + 1     '--------------------*** 실제 데이터 열 보다 한칸 +1 에 있음 ***********
        
        Set Keyword_range = .Find(What:="시험시간", LookAt:=xlWhole)            '--------------------- 시험시간 행 열 요소 찾기
        'On Error Resume Next
        Test_T_row = Keyword_range.Row
        Test_T_col = Keyword_range.Column
        
        Debug.Print Test_T_row
        Debug.Print Test_T_col
        
        realDataStartRow = .Cells(Test_T_row, Test_T_col).End(xlDown).Row
        realDataEndRow = .Cells(Rows.Count, Test_T_col).End(xlUp).Row
        
        Debug.Print realDataStartRow
        Debug.Print realDataEndRow
        
        Set t1Rng = .Range(Cells(realDataStartRow, Test_T_col), Cells(realDataEndRow, Test_T_col))
        Set t2Rng = .Range(Cells(realDataStartRow, Cont_R_col), Cells(realDataEndRow, Cont_R_col))
        Set t3Rng = .Range(Cells(realDataStartRow, Mov_T_col), Cells(realDataEndRow, Mov_T_col))
        Set t4Rng = .Range(Cells(realDataStartRow, Mov_V_col), Cells(realDataEndRow, Mov_V_col))
        Set t5rng = .Range(Cells(realDataStartRow, Open_V_col), Cells(realDataEndRow, Open_V_col))
            
            Debug.Print t1Rng
            t1Arr = t1Rng.Value
            t2Arr = t2Rng.Value
            t3Arr = t3Rng.Value
            t4Arr = t4Rng.Value
            t5Arr = t5rng.Value
            Debug.Print t2Arr
            Debug.Print t3Arr
            
        .Range("ab5").Resize(UBound(t1Arr, 1)).Value = t1Arr
        .Range("ac5").Resize(UBound(t2Arr, 1)).Value = t2Arr
        .Range("ad5").Resize(UBound(t3Arr, 1)).Value = t3Arr
        .Range("ae5").Resize(UBound(t4Arr, 1)).Value = t4Arr
        .Range("af5").Resize(UBound(t5Arr, 1)).Value = t5Arr

    End With
    
'    Selection.NumberFormatLocal = "h:mm:ss;@"
    
End Sub