【发布时间】:2015-07-31 22:27:48
【问题描述】:
我是 vba 的新手,正在从事一个可以自动重新排列我的电子表格的项目。在众多步骤之一中,我循环遍历单元格以进行匹配和填充。它有效,但存在效率问题。
**更具体的东西**
感谢大家这么快回复我。我还想在循环中放置一个 if 语句。这是我最终想要实现的目标:
sheet1
C1 C2 C3
R1
R2
R3
sheet2
Row Col Ind
R1 C1 b
R1 C2 a
R1 C3 b
R2 C1 b
R2 C2 a
R2 C3 b
R3 C1 b
R3 C2 a
R3 C3 b
我写的代码:
Sub test()
Dim field As Range, crit1 As Range, crit_search1 As Range, crit2 As Range, crit_search2 As Range, ind As Range
Dim i As Integer, j As Integer, m As Integer
Set field = Sheets("Sheet1").Cells(i, j)
Set crit1 = Sheets("sheet1").Cells(i + 1, 1)
Set crit_search1 = Sheets("sheet2").Cells(m + 1, 1)
Set crit2 = Sheets("sheet1").Cells(1, j + 1)
Set crit_search2 = Sheets("sheet2").Cells(m + 1, 2)
Set ind = Sheets("sheet2").Cells(m + 1, 3)
For i = 1 To 3
For j = 1 To 3
For m = 1 To 9
If crit1 = crit_search1 And crit2 = crit_search2 Then
field = ind
Next
Next
End Sub
而且,我想要得到的结果:
Sheet1
C1 C2 C3
R1 b a b
R2 b a b
R3 b a b
所以基本上,我通过匹配 Row 和 Col 标准来填充 2D 矩阵。
如果有更好的解决方案,请随意丢弃我的代码。谢谢大家!
【问题讨论】:
-
我使用msdn.microsoft.com/en-us/library/office/…解决了我自己的问题