【发布时间】:2021-09-26 23:42:48
【问题描述】:
在上一篇文章中,你们帮我找到了复制粘贴单元格的解决方案。
现在我遇到了一个稍微不同的问题。
这里是;我有两张不同的床单;
worksheets("Food")Worksheets("Numbers")
在worksheets("Food"),我有以下板子;
| Fruits | Vegetables |
| -------- | --------------|
| Banana | Carrots |
| Peach | Spinachs |
| Pineapple | Cauliflowers |
在worksheets("Numbers"),我有这个;
| Fruits | Numbers |
| -------- | --------- |
| Banana | 9 |
| Apple | 2 |
| Orange | 3 |
| Peach | 7 |
| Pineapple | 5 |
如果worksheets("Numbers") 中确实存在,我想搜索worksheets("Food") 中的每种水果。如果是,则自动在worksheets("Food") 中名为“Numbers”的列 Fruits 和 Vegetables 之间插入一个新列。
之后,在worksheets("Numbers")中找到每个水果旁边的数字,并将其粘贴到 worksheets("Food")新创建的列中匹配的水果旁边。
像这样;
| Fruits |*Numbers* |Vegetables
| -------- |-------------- |------------
| Banana |**9** |Carrots
| Peach |**7** |Spinachs
| Pineapple |**5** |Cauliflowers
我一直在尝试运行执行此过程的代码,但是当我运行它时没有任何反应(也没有发生错误)... 这是它;
Sub Add_Fruits_Numbers()
Dim lastlineFood As Long
Dim lastlineRef As Long
Dim j, i, compteur As Integer
Dim x As Long, rng As range
lastlineRef = Worksheets("Numbers").range("A" & rows.Count).End(xlUp).row
For j = 1 To lastlineRef
lastlineFood = Worksheets("Food").range("A" & rows.Count).End(xlUp).row
For i = 1 To lastlineFood
If range("A" & i).Value = Worksheets("Numbers").range("A" & j).Value Then
Set rng = Worksheets("Numbers").range("A1", range("A1").End(xlToRight))
For Each cell In rng
If cell.Value = "Fruits" Then
cell.EntireColumn.Offset(0, 1).Insert (xlShiftToRight)
End If
Next cell
Worksheets("Food").range("A" & i).Offset(, 1).Value = Worksheets("Numbers").range("A" & j).Offset(, 1)
End If
Next i
Next j
End Sub
再次感谢您的帮助,谢谢!
【问题讨论】:
-
还活着吗?你真的需要帮助,还是只喜欢提问...?
-
嘿!还活着!得到了一个吼叫,它工作得很好!再次感谢你 ! (抱歉迟到了!):)
标签: excel vba for-loop if-statement foreach