Tak można to zrobić przy użyciu ADO jako Gary skomentował ale tylko wtedy, gdy Excel Arkusz jest umieszczony w bazie danych, takich jak struktury.
To znaczy, że masz prawidłowe pola ułożone w kolumnach (z lub bez nagłówków).
Na przykład:

Teraz widać, że numer identyfikacyjny mieć nazwę John John i chcesz zaktualizować go do Jana Rycerz.
Korzystanie z ADO można spróbować:
Edit1: Rzeczywiście można to zrobić bez użycia Recordset. Zobacz poniżej aktualizację.
Sub conscious()
Dim con As ADODB.Connection
Dim sqlstr As String, datasource As String
Set con = New ADODB.Connection
datasource = "C:\Users\UserName\Desktop\TestDataBase.xlsx" 'change to suit
Dim sconnect As String
sconnect = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & datasource & ";" & _
"Extended Properties=""Excel 12.0;HDR=YES"";"
With con
.Open sconnect
sqlstr = "UPDATE [Sheet1$] SET [Name] = ""John Knight"" WHERE [ID Number] = 12345"
.Execute sqlstr
.Close
End With
Set con = Nothing
End Sub
Wynik:

Nie jestem do końca pewien, czy to jest to, co chcesz, ale HTH.
Uwagi:
- Trzeba dodać odniesienie do Microsoft ActiveX Data Objects x.x Biblioteka (początek wiązania).
- Ale można to również zrobić za pomocą późnego wiązania (bez odniesienia).
- Ciąg połączenia używany jest dla programu Excel 2007 i nowszych.
- Arkusz1 to nazwa docelowego arkusza, do którego chcesz zaktualizować wartość.
Edit1: To jak to zrobić, jeśli plik nie ma nagłówka
najpierw zmienić ciąg połączenia HDR argument NO.
sconnect = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & datasource & ";" & _
"Extended Properties=""Excel 12.0;HDR=NO"";"
Następnie dostosuj swój ciąg SQL:
sqlstr = "UPDATE [Sheet1$] SET F2 = ""John Knight"" WHERE F1 = 12345"
więc jest F1
dla pole 1, F2
dla pole 2 itp
Rozważ użycie ** ** http ADO : //support.microsoft.com/kb/278973 –