【发布时间】:2021-05-30 11:44:14
【问题描述】:
我写了一个代码,但它不工作 我想从 sheet1 复制一个范围 F2:F24 并将其粘贴到 Sheet2 中增量列(Column_count + 1),只有当 sheet1 中的单元格 F2 值不应等于 sheet2 中第一行的最后一列 如果匹配,则弹出 msgbox 为“check_the _cell” 这是我的代码
Sub copycolumns()
Dim TargetSheet As Object
Set TargetSheet = Sheets("sheet2")
Dim TargetColumn As Integer
Dim LastC As Long
TargetColumn = TargetSheet.Range("F1").CurrentRegion.Columns.Count + 1
LastC = TargetSheet.Cells(1, TargetSheet.Columns.Count).End(xlToLeft).Column
If LastC = Sheets("sheet1").Cells(2, 6).Value Then
MsgBox "check the cell"
ElseIf TargetSheet.Range("F1") = "" Then
TargetColumn = 6
End If
Sheets("sheet1").Range("F2:F24").Copy
TargetSheet.Activate
TargetSheet.Cells(1, TargetColumn).Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
Update_1:在从Sheet1复制和粘贴RangeF2:F24之前,它应该比较Sheet1的F2(参考Image1)的值和sheet2的第一个单元格的最后一列(参考Image2,它是J1)。如果它的值相同,则 msgpop 为错误。如果它的值不同,则复制 F2:F24 并粘贴到 sheet2 第一行的最后一列
【问题讨论】:
-
这个
Sheets("sheet1").Cells(2, 6).Value应该是动态行吗?否则你总是检查同一个单元格。 -
金先生,您好,感谢您的评论。它不是动态的,在复制粘贴 RangeF2:F24 之前,它应该始终检查同一个单元格。 (单元格(2,6)(它的日期每天都在变化)