Set min=min1=1000, max=max1=position=0
For i=2 to 10 do
min=**MIN(A(i,j):A(i+5,j));**
if position=0 then min1=min, position=1 else
For j=2 to 10 do {max=**MAX(A(i,j):A(i+5,j));**
if max<min then next j else position=0, next i
我是新手,并尝试在VB excel中执行上面的代码(问题是粗体):谢谢
答案 0 :(得分:7)
无法更正所有代码,因为您不清楚自己要做什么。但以下可能会给你一个开始。
最好声明变量并指定其类型:
Dim i As Integer
Dim j As Integer
Dim max As Integer
Dim max1 As Integer
Dim min As Integer
Dim min1 As Integer
Dim Position As Integer
我更喜欢按字母顺序声明它们,但这不是必需的。
你需要:
min = 1000
min1 = 1000
max = 0
max1 = 0
Position = 0
Set min=min1=1000, max=max1=position=0
中存在以下错误:
在某些语言中,min=min1=1000
表示min1=1000, min=min1
,但在VBA中表示:
If min1=1000 Then
min=True
Else
min=False
End if
For语句末尾没有Do
。所以:
For i = 2 To 10
MIN和MAX是工作表函数。要在VBA中使用,您必须说它们是工作表函数。 VBA中的语句末尾没有分号。您已在MIN函数中使用了j但尚未设置其值。
我无法分辨作为MIN和MAX的参数值的位置。
如果位置在当前工作表中,则需要以下内容:
With ActiveSheet
min = Application.WorksheetFunction.min(.Range("B16:F16"))
End With
或者也许喜欢:
With ActiveSheet
min = Application.WorksheetFunction.min(.Range(.Cells(i,j),.Cells(i+5,j)))
End With
可以在阵列上使用MIN和MAX函数,但我知道无法选择阵列的一部分。
希望这能为你提供一个开始。