У меня есть лист excel, в котором есть два столбца number1 и number2. Для каждой итерации мне нужно взять число 1 и номер 2 из ячеек и добавить его, и мне нужно обновить результат добавления в третьем столбце говорят «Результат». Я пытаюсь достичь этого, используя метод OLE DB, но тот же результат обновляется во всех ячейках. Пожалуйста, найдите код ниже.Обновить результат для каждой записи
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Sub TestMacro()
Sheets("Sheet1").Range("C2:D20").ClearContents
DBPath = ThisWorkbook.FullName
sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes;Option=3;"
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.RecordSet")
select_query = "SELECT * FROM [Sheet1$]"
cn.Open sconnect
With rs
.ActiveConnection = cn
.Source = select_query
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.CursorLocation = adUseServer
.Open
End With
Do While Not rs.EOF
num1 = rs.Fields(0).Value
num2 = rs.Fields(1).Value
rs.Fields(2).Value = num1 + num2
rs.MoveNext
Loop
End Sub
Я не вижу причин использовать ADO для этого. Кроме того, ваши 2 'Set' утверждения не нужны, поскольку вы уже инициализировали переменные в ваших операторах' Dim'. –