如何在右侧的下一个空白单元格中粘贴?

问题描述 投票:0回答:1

我正在尝试将匹配的单元格值中具有偏移量和过去值的值复制到右边的下一个空单元格中。我收到错误“类型不匹配”

Dim ThisCell1 As Range
Dim ThisCell2 As Range
Dim LCol As Long
  Application.ScreenUpdating = False
  For Each ThisCell1 In Sheets("sheet1").Range("A1:A1089")
        For Each ThisCell2 In Sheets("sheet0").Range("b2:b3392")
            If ThisCell2.Value = ThisCell1.Value Then

                ThisCell2.Offset(0, 1).Copy

                ThisCell1.End(xlToLeft).Offset(0, 1).Select
                Selection.PasteSpecial Paste:=xlPasteValues
                Exit For
                End If
            Next ThisCell2
            Next ThisCell1
Application.ScreenUpdating = True
excel vba rows offset paste
1个回答
0
投票

此子功能可以满足您的要求,并且比使用双循环要快得多。它使用公式Match作为参数,它将找到在哪一行找到匹配项。然后它将转到该行,找到最后使用的列,并复制原始字符串的偏移量:

Dim ThisCell1 As Range
Dim ThisCell2 As Range
Dim LCol As Long
  Application.ScreenUpdating = False
        For Each ThisCell2 In Sheets("sheet0").Range("b2:b3392")
            If Not IsError(Application.Match(ThisCell2.Value, Sheets("Sheet1").Range("A1:A1089"))) Then
                    Sheets("Sheet1"). Cells(Application.Match(ThisCell2.Value, Sheets("Sheet1").Range("A1:A1089")), Columns.Count).End(xlToLeft).Offset(, 1).Value = ThisCell2.Offset(, 1)
                Exit For 'This insures you only ever get one match. Is that what is needed?
                End If
            Next ThisCell2
Application.ScreenUpdating = True

我不确定这是否是您要寻找的确切逻辑,如果没有让我知道,请问。这是我可以将您的值与范围进行比较而得出的最接近原始代码的近似值。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.