【问题标题】:If 2 phrase's from sheet 1 match in sheet2 then copy that row to sheet 1如果工作表 1 中的 2 个短语在工作表 2 中匹配,则将该行复制到工作表 1
【发布时间】:2021-12-19 11:22:39
【问题描述】:

我遇到了从哪里开始这段代码的问题。

我有 1 个主数据 (sheet1) 表和上传的表 (sheet 2)。

流程需要做的事情:

Sheet1 有 2 个特定单词(TREE 和 WOOD),如果这些单词在 Sheet2 中的 2 个单元格之间匹配,则将该行从 A2 复制到 R2 到该表的最后一行。

添加新的。

所以我写了一个代码,在 F 列中找到特定值,如果匹配,那么它将将该行复制并粘贴到其他工作表。

我遇到了一个问题,当我尝试挤压 Range 以从 A:O 列复制时出现错误。

有人知道我的错误在哪里吗?

Sub Copyrow()

Dim c As Range
Dim j As Integer
Dim Source As Worksheet
Dim Target As Worksheet


Set Source = ActiveWorkbook.Worksheets("MasterDATA")
Set Target = ActiveWorkbook.Worksheets("MainData")

j = 1
For Each c In Source.Range("F1:F20000")
    If c = "PMC" Then
       Source.Rows(c.Row).copy ' I'm trying to squeeze .Range before .Rows
       Target.Rows(j).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, _
             Operation:=xlNone, SkipBlanks:=False, Transpose:=False
       j = j + 1
    End If
Next c

With Range("H1:H5000")
.NumberFormat = "General"
    .Value = .Value
End With

End Sub

谢谢!

【问题讨论】:

  • 欢迎来到 Stack Overflow。请注意,由于这不是免费的代码编写服务,因此您有必要展示到目前为止您尝试过的内容以及遇到的问题或错误(通过展示您的代码),或者至少展示您的研究内容和您所做的努力制成。否则,它只是要求我们为您完成所有工作(No attempt was made)。阅读How to Ask 可能会帮助您改进您的问题。
  • 感谢分享。我很快就会在这里添加我的代码!
  • 如果有人能找到为什么 .range 不起作用的问题,请在上面发布我的代码,那就太好了。与此同时,我也在寻找我做错了什么。
  • squeeze Range 是什么意思?你的意思是像Source.Range("A" & c.Row, "O" & c.Row).Copy这样的东西吗?
  • 是的!它起作用了:D。

标签: excel vba


【解决方案1】:

Source.Range("A" & c.Row, "O" & c.Row).Copy 只会将该行从 A 列复制到 O。

只要确保粘贴在同一范围内即可Target.Range("A" & j, "O" & j).PasteSpecial。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    相关资源
    最近更新 更多