我已经编写了一些代码来将一个单元格(U)中的值与另一个单元格(U)中的值相对应,但是通过更改第三个(Q)中的值。 它首先检查另一个单元格(Y),它是一个错误检查单元格。 全部在同一行。
我想为一个范围内的所有行运行它, 我写了以下内容:
If Sheets("Main").Range("Y16") <> "Volumes OK" Then
Sheets("Main").Range("Q16").Value = 0
Else
Sheets("Main").Range("U16").GoalSeek Goal:=Sheets("Main").Range("V16"), ChangingCell:=Range("Q16")
End If
我想要做的是尝试使用字符串函数迭代16-200行,但我不确定需要定义多少个整数以及按什么顺序以及如何使其工作! 我想我必须调暗字符串然后使用For循环但不确定如何...
答案 0 :(得分:0)
要遍历第16到第200行,请执行以下操作:
Dim MyRow as Integer
for MyRow = 16 to 200
If Sheets("Main").Range("Y" & MyRow) <> "Volumes OK" Then
Sheets("Main").Range("Q" & MyRow).Value = 0
Else
Sheets("Main").Range("U" & MyRow).GoalSeek _
Goal:=Sheets("Main").Range("V" & MyRow), ChangingCell:=Sheets("Main").Range("Q" & MyRow)
End If
Next
如果您的任何值需要来自固定位置,请将动态.Range("x") & MyRow)
替换为固定.Range("xy")
,以使其指向一致的列x
和行{{1 }}
注意:在y
公式中,我将GoalSeek
更改为Range()
,以便与公式的其余部分保持一致。如果由于某种原因,您将来要修改此代码并离开Sheets("Main").Range()
,那么Sheets("Main")
(不带前导Range()
)会指向当时的当前工作表,可能不你想要什么。通过指定它来自哪个工作表,您可以在任何地方移动,并且仍然可以使代码行工作。通过明确说明您正在处理的工作表,它也更具可读性。