Sì, è possibile farlo utilizzando ADO come Gary ha commentato, ma solo se il foglio di lavoro Excel è organizzato in una struttura di tipo Database.
Significato di campi validi disposti in colonne (con o senza intestazioni).
Per esempio:

Ora, si vede che il numero ID hanno un nome John John e si desidera aggiornarlo a John Knight.
Utilizzo di ADO si può provare:
Edit1: si può effettivamente fare questo senza usare Recordset. Vedi sotto aggiornamento.
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
Risultato:

Non sono del tutto sicuro se questo è ciò che si vuole, ma HTH.
Note:
- è necessario aggiungere riferimento a Microsoft ActiveX Data Objects x.x Biblioteca (bind precoce).
- Ma è possibile farlo anche utilizzando il binding ritardato (nessun riferimento).
- La stringa di connessione utilizzata è per Excel 2007 e versioni successive.
- Foglio1 è il nome del foglio di destinazione a cui si desidera aggiornare il valore.
Edit1: Questo è come farlo se il file non ha intestazione
prima cambiare la stringa di connessione HDR argomento per NO:.
sconnect = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & datasource & ";" & _
"Extended Properties=""Excel 12.0;HDR=NO"";"
Poi regolare la stringa SQL per:
sqlstr = "UPDATE [Sheet1$] SET F2 = ""John Knight"" WHERE F1 = 12345"
in modo che sia F1
per campo 1, F2
per campo 2 ecc
considerare l'utilizzo di ADO ** ** http : //support.microsoft.com/kb/278973 –