簡體   English   中英

如何在Excel VBA中提取多列數據

[英]how to extract multiple column data in Excel VBA

我正在做一個宏,它從另一個文件的某些列中提取數據。 我遇到了一條錯誤消息

類型不匹配

在行Set row = Columns("O,Q,W")我知道這是不正確的,我也嘗試過使用Union,但這也不起作用。

Sub ImportDatafromotherworksheet()
Dim wkbCrntWorkBook As Workbook
Dim wkbSourceBook As Workbook
Dim rngSourceRange As Range
Dim rngDestination As Range
Dim row As Range
Dim row1 As Integer
Dim hello As Range
Dim hello1 As Range
Dim lastRow As Long, i As Long
Dim CopyRange As Range
Set wkbCrntWorkBook = ActiveWorkbook
With Application.FileDialog(msoFileDialogOpen)
    .Filters.Clear
    .Filters.Add "Excel 2007-13", "*.xlsx; *.xlsm; *.xlsa"
    .AllowMultiSelect = False
    .Show
    If .SelectedItems.Count > 0 Then
        Workbooks.Open .SelectedItems(1)
        Set wkbSourceBook = Workbooks.Open(.SelectedItems(1))

        With wkbSourceBook.Worksheets(1)
            lastRow = .Range("A" & .Rows.Count).End(xlUp).row

        For i = 4 To lastRow
            If Len(Trim(.Range("A" & i).Value)) <> 0 Then
                If CopyRange Is Nothing Then
                    Set CopyRange = .Rows(i)
                Else
                Set CopyRange = Union(CopyRange, .Rows(i))
                Set row = Columns("O,Q,W")
                End If
            End If
        Next

        If Not CopyRange Is Nothing Then


            wkbCrntWorkBook.Activate
            Set rngDestination = Application.InputBox(Prompt:="Select destination cell", Title:="Select Destination", Default:="A1", Type:=8)
            row.Copy rngDestination
            rngDestination.CurrentRegion.EntirdoeColumn.AutoFit
            wkbSourceBook.Close False
            '~~> Change Sheet2 to relevant sheet name
        End If
        End With


    End If
End With
End Sub

用這個:

Set MyRange = Union(Columns(1), Columns(4))

一次可以捕獲多列

您不能像這樣使用Columns() 還要避免將Row用作變量。 這是保留字。

更改為

Set rw= .Range("O:O,Q:Q,W:W")

或喜歡@KKowalczyk的建議

Set rw = Union(.Columns(15), .Columns(17), .Columns(23))

忘了提及,請同時限定您的單元格對象。 注意到前面的點了嗎? 如果您不這樣做,那么他們將解決Activesheet ,這可能是也可能不是您實際認為的工作表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM