Я всегда получаю сообщение об ошибке при запуске этого кода. Ошибка - 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', кажется, не идеален, вы ищете минимальное значение, которое зависит от динамического диапазона? В этом случае вы можете использовать 'Match' с' Min' –
@Siva m1.Cells (s2_pos, col) .Value = temp_swap, извините, что инструмент фрагмента не работает: '( – Kurst