Я знаю, что в другом ответе вы сказали, что пытались добавить пару секунд, я не был полностью уверен, что вы имели в виду, но я предполагаю, что вы уже пытались что-то подобное?
Измените 20 секунд на то, что вы когда-либо чувствуете
Private Sub workbook_activate()
Dim time_delay As Date
time_delay = Now() + TimeValue("00:00:20")
Application.OnTime time_delay, "thisworkbook.updatetable"
End Sub
Private Sub updatetable()
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
Dim rs As ADODB.Recordset
Dim strSql As String
Dim conn As New ADODB.Connection
Dim strConn As String
Dim PN As String
Dim partid As Integer
ActiveWorkbook.RefreshAll
strConn = "Driver={SQL Server};Server=servername; Database=CI; UID=userID; PWD=UserPassword"
cn.Open strConn
partid = Worksheets("Sheet3").Range("G2").Value
strSql = "UPDATE dbo.OHW_Schedule SET Grabbed = '1' WHERE ID = '" & partid & "' "
cn.Execute strSql
End Sub