使用空string值清除单元格

我正在尝试将excel文件导出到访问数据库。 某些列/字段需要有字段types编号 ,因为这些字段稍后将在涉及诸如sum,count等函数的查询中使用。

现在的问题是,在Excel中相应的列包含空string,导致访问数据库(字段types不匹配)导致问题。 即使Excel中的这些列将单元格格式化为数字,问题仍然存在

我使用下面的VBA代码来消除这些列中的所有空string,它适用于相当数量的行。 但是,excel文件将有350000多行,对于如此多的行,代码似乎永远运行。

任何提高我的代码或采取另一种方法的提示将不胜感激

Dim r As Range For Each r In ActiveSheet.Range("AG2:AJ" & lastRow) With r If .Value = "" Then .Clear End If End With Next 

如果你有公式,这应该为你工作,并运行在我有一个testing数据集有360000行不到5秒:

 Sub tgr() Dim lCalc As XlCalculation Dim lCol As Long Dim lLastRow As Long With Application lCalc = .Calculation .Calculation = xlCalculationManual .ScreenUpdating = False .EnableEvents = False End With lLastRow = Range("AG:AJ").Find("*", Range("AG1"), , , , xlPrevious).Row For lCol = Columns("AG").Column To Columns("AJ").Column With Cells(1, lCol).Resize(lLastRow) .AutoFilter 1, "=" .Offset(1).Resize(.Rows.Count - 1).ClearContents .AutoFilter End With Next lCol With Application .Calculation = lCalc .ScreenUpdating = True .EnableEvents = True End With End Sub 

如果在列中没有公式 ,则运行:

 Sub clearTHEM() Dim r As Range Dim N As Long N = Cells(Rows.Count, "AG").End(xlUp).Row Set r = Range("AG2:AJ" & N) With r .Value = .Value End With End Sub 

将清除空值 。 但是,它也将爆炸公式。 如果有公式,则运行macros,然后导出,但不保存。

编辑#1:

对于稍微更干净的方法,这段代码将创build一个特殊的,仅用于导出的工作表副本,不包含空值或公式:

 Sub ForExportOnly() ActiveSheet.Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = "For Export Only" With ActiveSheet.UsedRange .Value = .Value End With End Sub