Vba 若行包含指定的值,则将ID复制到第一列
如果一行包含值“car”,我将尝试将ID单元格的内容复制到A1 例如,如果第D12行包含“car”,我想将单元格B12的内容复制到A12 目前这是我的代码:Vba 若行包含指定的值,则将ID复制到第一列,vba,excel,for-loop,Vba,Excel,For Loop,如果一行包含值“car”,我将尝试将ID单元格的内容复制到A1 例如,如果第D12行包含“car”,我想将单元格B12的内容复制到A12 目前这是我的代码: Dim lastRow As Long Dim cell As Range lastRow = Range("A" & Rows.Count).End(xlUp).Row + 1 For Each cell In Range("D2:D" & lastRow) If InStr(1, cell.Value, "CAR")
Dim lastRow As Long
Dim cell As Range
lastRow = Range("A" & Rows.Count).End(xlUp).Row + 1
For Each cell In Range("D2:D" & lastRow)
If InStr(1, cell.Value, "CAR") <> 0 Then
cell.Offset(0, -3).Value = "test"
End If
Next
Dim lastRow尽可能长
暗淡单元格作为范围
lastRow=范围(“A”&行数)。结束(xlUp)。行数+1
对于范围内的每个单元格(“D2:D”和lastRow)
如果仪表(1,单元值,“CAR”)为0,则
单元格偏移量(0,-3).Value=“测试”
如果结束
下一个
因此,当前代码查找具有“car”的行,但使用值“test”填充单元格。我正在努力学习如何在上面引用/复制单元格
这是因为我工作表的第一列需要将值串联为ID,我不想将其应用于此字符串
谢谢你的建议/帮助 在A列中插入“test”的原因是,这就是代码所指定的。代码需要更改以反映所需内容
如果需要B列的内容,则将字符串“test”替换为:
所以整行应该是:
cell.Offset(0, -3).Value = cell.Offset(0, -2).Value
由于您正在迭代D列,
单元格
位于D列中。偏移部分表示“从D列移到三个位置,然后将两列中的值移到另一个位置”。或者将A列放在同一行中,距离D列中的当前单元格左侧3个单元格,并将B列中的值放在同一行中,距离D列中的当前单元格左侧2个单元格。另一种快速方法是使用autifilter。
例如:
Sub Button1_Click()
Dim lastRow As Long
Dim rng1 As Range, rng2 As Range
Application.ScreenUpdating = 0
lastRow = Range("D" & Rows.Count).End(xlUp).Row + 1
Columns("D:D").AutoFilter Field:=1, Criteria1:="=*Car*"
Set rng1 = Range("A2:A" & lastRow).SpecialCells(xlCellTypeVisible)
Set rng2 = Range("B2:B" & lastRow).SpecialCells(xlCellTypeVisible)
rng1.Value = rng2.Value
ActiveSheet.AutoFilterMode = 0
End Sub
将单词“test”更改为
单元格偏移量(0,-2).Value
。你需要告诉代码你想成为什么样的人。现在有人告诉我“测试”。你先让我回答,然后抢走我的风头。我以为我们是朋友:P
Sub Button1_Click()
Dim lastRow As Long
Dim rng1 As Range, rng2 As Range
Application.ScreenUpdating = 0
lastRow = Range("D" & Rows.Count).End(xlUp).Row + 1
Columns("D:D").AutoFilter Field:=1, Criteria1:="=*Car*"
Set rng1 = Range("A2:A" & lastRow).SpecialCells(xlCellTypeVisible)
Set rng2 = Range("B2:B" & lastRow).SpecialCells(xlCellTypeVisible)
rng1.Value = rng2.Value
ActiveSheet.AutoFilterMode = 0
End Sub