访问VBA在Excel中分割出所有合并的单元格

我需要将一些Excel文件导入到Access数据库中。 我知道如何在VBA中编写导入函数,但它不能像我所期望的那样工作,因为Excel中的一些合并单元格会给我带来麻烦。

例如,在Excel电子表格中

在这里输入图像说明

当导入到Access表时,它逐行导入。 所以第一行应该是1-铅笔-90,这是正确的,但是第二行和第三行由于合并的单元而是空的。 结果是

No|Product|Storage 1 | pencil|90 | |23 | |41 

但预期的结果应该是:

 No|Product|Storage 1 | pencil|90 1 | pencil|23 1 | pencil|41 

我希望VBA拆分合并的单元格,并用合并单元格中的信息填充空白数据。 请记住,我有很多合并单元格,手动更改是不可能的。 我愿意帮助我实现愿望的任何解决scheme。

P / S:aata可以留空,所以我不能使用条件检查,如果它是空白的,然后查找上述数据。

尝试这个

 Sub UnMergeRanges() Dim cl As Range Dim rMerged As Range Dim v As Variant For Each cl In ActiveSheet.UsedRange If cl.MergeCells Then Set rMerged = cl.MergeArea v = rMerged.Cells(1, 1) rMerged.MergeCells = False rMerged = v End If Next End Sub 

怎么运行的:

  • 循环使用范围内的单元格
  • 如果单元格是合并范围的一部分
    • 将范围variables设置为合并范围
    • 将范围内的左上angular单元格的当前值logging到variablesv 。 这是合并范围显示的值
    • 取消范围
    • 将logging值( v )写入现在未合并范围的所有单元格中