将Excel中的Chr(10)替换为Chr(13)+Chr(10)以导入Access

将Excel中的Chr(10)替换为Chr(13)+Chr(10)以导入Access,excel,vba,ms-access,Excel,Vba,Ms Access,问题是Excel中的换行符使用Char10,而Access中的换行符使用Char13和Char10。因此,当您从Excel导入Access时,Excel中的换行符都位于Access中的同一行 我通过点击按钮自动导入,以便在输入之前对一些数据进行消毒。我想在致敏剂中添加这个,但我遇到了问题: ' Remove blank cells that aren't blank (i.e., pasting values of formulas with no value) xl.ActiveSheet.U

问题是Excel中的换行符使用Char10,而Access中的换行符使用Char13和Char10。因此,当您从Excel导入Access时,Excel中的换行符都位于Access中的同一行

我通过点击按钮自动导入,以便在输入之前对一些数据进行消毒。我想在致敏剂中添加这个,但我遇到了问题:

' Remove blank cells that aren't blank (i.e., pasting values of formulas with no value)
xl.ActiveSheet.UsedRange.Select
xl.Selection.Value = xl.Selection.Value

' Replace line breaks and carriage returns with something Access recognizes
xl.Selection.Value = Replace(xl.Selection.Value, Chr(10), Chr(13) + Chr(10))

' OR this....

xl.ActiveSheet.Selection.Replace _
  What:=Chr(10), Replacement:=Chr(13) + Chr(10), _
  SearchOrder:=xlByColumns, MatchCase:=False
第一种方法产生:

Run-time error '13': Type mismatch
Run-time error '438': Object doesn't support this property or method
第二种方法产生:

Run-time error '13': Type mismatch
Run-time error '438': Object doesn't support this property or method

我在这里哪里出错了?还有什么更好的方法呢?

没关系,在发布几分钟后就想出来了:

xl.Selection.Replace What:="" & Chr(10) & "", Replacement:="" & Chr(13) & Chr(10) & "", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

要保留Excel数据,您也可以在导入MS Access后运行以下查询:

使现代化 你的桌子 设置 t、 YourField=replace.YourField,Chr10,Chr13&Chr10 哪里 t、 YourField like*&Chr10&*和 t、 YourField不像*&Chr13&Chr10&*