我正在尝试将一些表格从Excel 2010(.xlsx)导入到Access 2010.我注意到如果一列有零格式化为破折号(Excel的“会计”格式,也可以按下上面的逗号按钮获得工具栏),我将列导入为double,然后Access产生导入错误。如果我在Excel中将列格式化为“数字”,以便零显示为零,Access将导入数据而没有错误。这是谁?有没有办法解决这个问题,除了手动重新格式化Excel中的每一列?谢谢!
答案 0 :(得分:1)
我不确定究竟是什么导致了这个问题,但是这个excel宏将贯穿从第一列到最后一个使用列的每个工作表,并将任何“记帐”列的格式更改为“数字”列。我希望它有所帮助。
Sub AccountingReformat()
Dim ws As Worksheet
Dim rng As Range
Dim lastCell As Range
For Each ws In ThisWorkbook.Worksheets
ws.Activate
Set lastCell = ws.Cells.Find(What:="*", After:=ws.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False)
For Each rng In Range("A1:" & lastCell.Address).Columns
If (rng.NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)") Then
rng.NumberFormat = "0.00"
End If
Next rng
Next ws
End Sub