复制粘贴行范围(动态)并基于等于X else SKIP的列值进行粘贴。
第11行中有条件,即I11:T11,如果I11包含TEST,请跳至下一列,直到它不等于TEST,然后从该单元格的下一行中选择范围,例如M12:T12,并在粘贴时检查H列中的值,如果它包含X,则仅粘贴其他跳过。 H列中的数据将从H12开始到H列的最后一行。
请参考所附的屏幕截图,并遵循以下准则:
在H列中有一个Flag值,如果它包含X,则应去检查I11:T11,如果它找到了成员<> TEST,则从该单元格中复制范围,在这种情况下为L12 :T12,并且仅粘贴在H列的值为X的行中,而不应该粘贴在H列包含Y的行中。
H列中的其他值将是动态的,即上述逻辑应考虑H13直到H列中的最后一行。 另外,还有从V开始的额外列,无论如何,应该根据H列逻辑标志值复制V12:X12和Z12:AB12中的值。
FYI,行中已有值,H列值为Y,因此无法清除这些值。
想要通过使用VBA代码的按钮单击来实现这一点。
添加代码,但仅限于固定列H值和固定行值。
Sub CopyOnCondition1()
Dim sh1 As Worksheet, c As Range
Set sh1 = Worksheets("SheetNameHere") 'change the sheetname
For Each cel In sh1.Range("I11:T11")
If Not cel.Value = "TEST" Then
sh1.Range(Cells(12, cel.Column), Cells(12, 20)).Copy
sh1.Range(Cells(13, cel.Column), Cells(24, 20)).PasteSpecial xlPasteFormulas
End If
Next
For Each cel In sh1.Range("H13:H24")
If cel.Value = "Y" Then sh1.Range("I" & cel.Row & ":T" & cel.Row).ClearContents
Next
End Sub