В настоящее время я использую ADODB-соединение для обновления некоторых ячеек. Обновление работает отлично (обновляет соответствующие строки). Однако, когда он вставляет значения, он добавляет апостроф (т. Е. «5 вместо 5»), что означает, что он не может быть отформатирован или добавлен правильно. Я пробовал использовать замену, но он не может найти апостроф, и я попытался использовать val(), но пока не повезло.Excel VBA с подключением ADODB создает текст вместо значений
Код (упрощенный) выглядит следующим образом: все переменные (sheet, tableAddressB и т. Д.) Работают нормально, а просто «5» в этом случае не обновляется как число.
Dim cn As New ADODB.Connection
Dim strSQL As String
Dim tableAddressB As String
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name & ";Extended Properties=""Excel 8.0;HDR=No;"";"
cn.Open
tableAddressB = Sheet & "$" & Range(Sheet & "Details").Address(False, False)
strSQL = "Update [" & tableAddressB & "] Set [" & tableAddressB & "].F5 = 5 " & _
"Where [" & tableAddressB & "].F3 between #1/1/2016# and #3/1/2016#"
cn.Execute strSQL
cn.Close
Благодарим за помощь!
Тип данных столбцов определяется из рабочей книги, прежде чем выполнять какое-либо обновление. Есть ли что-нибудь в 'F5' перед обновлением? Есть ли что-нибудь в столбце «F» в целом, это не число? Сначала попробуйте помещать манекен. –
Я думаю, вы можете просто форматировать ячейки (я)? Если он имеет это «впереди», он форматируется как текст. http://www.excelhowto.com/macros/formatting-a-range-of-cells-in-excel-vba/ – Niclas
Спасибо, оба отлично! –