首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制粘贴整排

复制粘贴整排
EN

Stack Overflow用户
提问于 2014-08-12 18:36:43
回答 2查看 58.4K关注 0票数 3

函数:我正在做一个小项目,在这个项目中,我需要在列中的每个单元格中搜索单词“未知”,如果其中包含“未知”一词,那么将整个行复制到新的工作表中。

问题:我得到的是"Object不支持这个属性方法“。错误。我相信它在副本声明的某个地方(而不是目的地)。它如此简单,但我似乎无法解决这个问题。

代码语言:javascript
复制
Sub CheckRows()
Dim b As Range
Dim SrchRng As Range

Set b = ActiveWorkbook.Sheets("Sheet 2").Range("A1")
Set SrchRng = ActiveWorkbook.Sheets("Sheet 1").Range("G1")

Do While SrchRng.Value <> ""     
    If SrchRng.Value = "Unknown" Then
        Worksheets("Sheet 1").SrchRng.EntireRow.Copy _
            Destination:=Worksheets("Sheet 2").b
        Set b = b.Offset(1, 0)
        Set SrchRng = SrchRng.Offset(1, 0)
    Else: Set SrchRng = SrchRng.Offset(1, 0)
    End If
Loop

End Sub
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-12 18:54:28

尝试Range.EntireRow.Value属性

代码语言:javascript
复制
b.EntireRow.Value = SrchRng.EntireRow.Value

在……里面

代码语言:javascript
复制
Do While SrchRng.Value <> ""
    If SrchRng.Value = "Unknown" Then
      b.EntireRow.Value = SrchRng.EntireRow.Value
    Set b = b.Offset(1, 0)
    Set SrchRng = SrchRng.Offset(1, 0)
    Else: Set SrchRng = SrchRng.Offset(1, 0)
    End If
Loop
票数 2
EN

Stack Overflow用户

发布于 2014-08-12 21:29:55

考虑以下情况:

Sheet 1有一个数据块,列G中有“未知”条目,而Sheet 2是空的。

通过将数据块定义为Range对象并应用标识“未知”条目的.Autofilter,我们可以简单地将过滤后的结果复制到Sheeet 2中。下面这个注释很重的脚本就是这样做的:

代码语言:javascript
复制
Option Explicit
Sub CheckRowsWithAutofilter()

Dim DataBlock As Range, Dest As Range
Dim LastRow As Long, LastCol As Long
Dim SheetOne As Worksheet, SheetTwo As Worksheet

'set references up-front
Set SheetOne = ThisWorkbook.Worksheets("Sheet 1")
Set SheetTwo = ThisWorkbook.Worksheets("Sheet 2")
Set Dest = SheetTwo.Cells(1, 1) '<~ this is where we'll put the filtered data

'identify the "data block" range, which is where
'the rectangle of information that we'll apply
'.autofilter to
With SheetOne
    LastRow = .Range("G" & .Rows.Count).End(xlUp).Row
    LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    Set DataBlock = .Range(.Cells(1, 1), .Cells(LastRow, LastCol))
End With

'apply the autofilter to column G (i.e. column 7)
With DataBlock
    .AutoFilter Field:=7, Criteria1:="=*Unknown*"
    'copy the still-visible cells to sheet 2
    .SpecialCells(xlCellTypeVisible).Copy Destination:=Dest
End With

'turn off the autofilter
With SheetOne
    .AutoFilterMode = False
    If .FilterMode = True Then .ShowAllData
End With

End Sub

这是Sheet 2上的输出

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25271683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档