在特定条件下在Excel中使用VBA复制数据

时间:2019-01-22 20:34:21

标签: excel vba excel-formula

我的老板要求我在包含171个城市的excel文件中填写客户费率(每个城市有5个不同的费率-即,如果city = Cell A1,则Cells A2:A6 =基于不同权重类别的费率)

我正在编写一个VBA代码(以前从未做过工作),在匹配City-Name并将相应的价格粘贴到城市旁边之后,它将价格从源工作表复制到此工作表中。

我的代码能够扫描和匹配城市名称,但是它始终将5个费率类别粘贴在第一行而不是匹配的实际城市旁边。我正在学习x1Down东西,但它很复杂。

这是我的代码:

Sub Button54_Click()

For Each c In Range("C2:C170")
 If c.Value = Range("O14").Value Then

*****O14 contains the source city name which I pasted from the source file. I can fix this later****

 Range("E2:J2").Value = Range("P14:U14").Value

**** P14:U14包含我粘贴的源文件速率。我以后也可以解决这个问题****

 End If
Next c
End Sub

我想要(xlUp)位的帮助,以便Range(“ E2:J2”)在扫描列表中匹配城市名称时会逐渐增加。我一直在玩,但会得到帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用(xlUp)的行号来输出到适当的匹配行,而不是使用(xlDown)c

Sub VendorStop()

For Each c In Range("C2:C170")
    If c.Value = Range("O14").Value Then
        Range("E" & c.Row & ":J" & c.Row) = Range("P14:U14")
    End If
Next c

End Sub