每当我运行此代码时,我总是收到错误。该错误是1004运行时错误。请帮我弄清楚我的代码出错了。我完全新的VBA,但我不知道如何使用Python和C.VBA项目中的运行时错误
Option Explicit
Sub Experiment()
Dim m1 As Worksheet
Set m1 = ThisWorkbook.Worksheets("Sheet1")
Dim col As Integer
Dim row As Integer
Dim initial As Double
Dim s1 As Double
Dim s1_pos As Integer
Dim s2 As Double
Dim s2_pos As Integer
Dim min As Double
Dim candidate As Double
Dim temp_swap As Double
Dim r As Integer
col = 2
'For col = 2 To 18 Step 3
For row = 5 To 47 Step 2
initial = m1.Cells(row, col).Value
s1 = m1.Cells(row + 1, col).Value
s1_pos = row + 1
min = Abs(36 - (initial + s1))
r = row + 1
Do While r < 49
s2 = m1.Cells(r, col).Value
candidate = Abs(36 - (initial + s2))
If candidate < min Then
min = candidate
s2_pos = r
End If
r = r + 1
Loop
temp_swap = s1
m1.Cells(s1_pos, col).Value = s2
m1.Cells(s2_pos, col).Value = temp_swap
Next row
End Sub
请指定@哪一行错误被抛出?如果你可以分享excel表单图片,那会很棒 – Siva
@Kurst你想达到什么效果?因为你的'While'循环似乎并不理想,你是否在寻找一个取决于动态范围的最小值?在这种情况下,你可以使用'匹配'与'Min' –
@Siva m1.Cells(s2_pos,col).Value = temp_swap,对不起,代码段工具不工作:'( – Kurst