【问题标题】:Copy particular data of fifth column after filtering过滤后复制第五列的特定数据
【发布时间】:2015-10-21 03:54:04
【问题描述】:

使用五列的 Excel 工作表,基于过滤第三个,我必须将第五个中的数据复制到另一个 Excel 工作表。

我做了这样的事情,但过滤后我无法复制第五列的特定数据:

DataTable.AddSheet "Sheet1"
DataTable.ImportSheet "A:\Data.xlsx","Sheet1","Sheet1"
RowCount= DataTable.GetSheet("Sheet1").GetRowCount

Set objexcel = CreateObject("excel.application")
Set objWorkbook = objExcel.WorkBooks.Open ("A:\Data.xlsx")
Set objSheet = objWorkbook.Worksheets(1)

objexcel.Visible=false

objexcel.Rows(1).Insert
objexcel.Columns(2).Insert
objexcel.Columns(2).Insert

objSheet.cells(1,1).value="Minutes Interval"
objSheet.cells(1,2).value="Hour Interval"
objSheet.cells(1,3).value="Hourly Filter"
objSheet.cells(1,4).value="HH:MM:SS"
objSheet.cells(1,5).value="Weight(g)"

For i = 2 To RowCount+2 Step 1

objSheet.cells(i,2).value="=A"&i&"/60"
objSheet.cells(i,3).value="=INT(B"&i&")=B"&i

Next

ObjSheet.cells(2,3).autofilter 3,"True"
Set objRange = objSheet.Range("A1")  
objWorkbook.Worksheets(1).UsedRange.Copy '--- to copy entire sheet data to AnotherExcel2

Set objWorkbookn= objExcel.Workbooks.Open ("A:\IntermediateExcel.xlsx")
Set objSheetn = objWorkbookn.Worksheets(1)
objWorkbookn.Worksheets(1).Range("A1").PasteSpecial Paste =xlValues '-- pasted here on AnotherExcel2
Set objRange = objSheet.Range("E2").EntireColumn                    '-- here selected 5th column entirely
objRange.Copy                                                       '-- copied 5th column
Set objWorkbook2= objExcel.Workbooks.Open ("A:\Result.xlsx")    
objWorkbook2.Worksheets(1).Range("E2").PasteSpecial Paste =xlValues '-- pasted to resultant excelsheet

objWorkbook.save
objWorkbook.close
objWorkbook2.save
objWorkbook2.close
objWorkbookn.save
objWorkbookn.close


Set objWorkbook = nothing
Set objexcel = nothing

【问题讨论】:

    标签: excel qtp


    【解决方案1】:

    正如您提到的,您想粘贴唯一过滤的数据,而不是使用它

    Set objRange = objSheet.Range("E2").EntireColumn                 
    objRange.Copy 'this will copy the entire column
    

    使用这个,它只会复制可见的,即过滤后的值。

    Set objRange = objSheet.Range("E2").EntireColumn  
    objRange.SpecialCells(xlCellTypeVisible).Copy 'this will copy only visible cells
    

    并按照您的方式粘贴值。

    【讨论】:

    • 我尝试了您的建议,但收到一条错误消息:“无法获取 Range 类的 SpecialCells 属性”
    猜你喜欢
    • 2013-05-12
    • 2020-08-11
    • 1970-01-01
    • 2014-05-23
    • 2022-07-18
    • 2014-07-01
    • 1970-01-01
    • 2020-08-02
    • 2016-04-03
    相关资源
    最近更新 更多