在A列中查找多个单元格值,并替换为同一行D列中的变量值

时间:2014-03-28 22:44:53

标签: excel vba excel-vba

为了让我开始使用VBA代码,我已经搜索了高低不同的东西,但是我一直在罢工。我有一些编写器块,可以使用任何帮助。

我正在尝试编写一个宏,它将在A列中找到多个特定值,并用该特定值替换该行中D列的内容。

基本上它将成为特定SKU的价格覆盖功能。 SKU填充在A列中,价格填充在D列中。它只有6个SKU,但我不能完全理解这个。

它必须是一个宏,因为我正在操作一个每天两次获取的文件。我使用一种主宏表来打开这个文件,然后操纵数据。

一如既往地感谢!我很感激帮助!

编辑添加:

这是我尝试过的东西,但我无法弄清楚如何为多个值做这个等等。

Sub Test()
Cells.Find(What:="26860", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
    xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
    , SearchFormat:=False).Activate
Range("D1704").Select
ActiveCell.FormulaR1C1 = "63.94"
Range("D1705").Select

End Sub

2 个答案:

答案 0 :(得分:0)

这是一种在VBA中处理数据的非常优化的方法: 在这个例子中,我合并了A和D的值并将它放在E中。您只需更改应用程序的公式

即可
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

Dim i As Integer
Dim cellsArray() As Variant
cellsArray = Range("A1:A20").value
Dim cells2Array() As Variant
cells2Array = Range("D1:D20").value
For i = LBound(cellsArray, 1) To UBound(cellsArray, 1)
   ' Put your code here
   cellsArray(i,1) = cellsArray(i,1) & cells2Array(i,1)
Next i
Range("E1:E20").value = cellsArray

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

答案 1 :(得分:0)

没关系。我显然太累了,无法考虑编写代码,因为我无法记住最简单的解决方案:

 For Each Cel In Range("A2:A3000")
   If Cel.Value = "Number" Then Cel.Offset(0, 3).Value = "Othernumber"
 Next               

让人惊讶。那令人尴尬! = P