2016-11-08 7 views
0

現在、一部のセルを更新するためにADODB接続を使用しています。更新は正常に動作します(適切な行が更新されます)。しかし、値をペーストすると、アポストロフィ(5の代わりに5)が追加されます。これは、適切にフォーマットまたは追加できないことを意味します。私は置換を使用しようとしましたが、アポストロフィを見つけることができず、私はval()を使用しようとしましたが、これまで運がありませんでした。ADODB接続のExcel VBAは値の代わりにテキストを生成します

すべての変数(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 

ありがとうございました!

+0

列のデータ型は、更新を行う前にワークブックから決定されます。更新を行う前に 'F5'に何かありますか? 'F'欄に数字以外のものがありますか?そこにダミー0を入れてみてください。 –

+0

私はあなたがちょうどセルをフォーマットすることができると思いますか?これが前面にある場合は、テキストとしてフォーマットされます。 http://www.excelhowto.com/macros/formatting-a-range-of-cells-in-excel-vba/ – Niclas

+0

おかげです。 –

答えて

0

JeroenとNiclasの両方に感謝します。 Range.NumberFormatを設定し、それに応じて調整する(Range.Numberformat = "0.00")と完全に動作します。

ご協力いただきありがとうございます。

関連する問題