1

我需要将一些 Excel 文件导入 Access 数据库。我知道如何在 VBA 中编写导入函数,但由于 Excel 中的某些合并单元格给我带来了麻烦,所以它没有按预期工作。

例如,在 Excel 电子表格中

在此处输入图像描述

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

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

但预期的结果应该是:

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

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

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

4

1 回答 1

1

尝试这个

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

这个怎么运作:

  • 循环遍历使用范围内的单元格
  • 如果单元格是合并范围的一部分
    • 将范围变量设置为合并范围
    • 将范围内左上角单元格的当前值记录到变量v中。这是合并范围显示的值
    • 取消合并范围
    • 将记录的值 ( v) 写入现在未合并范围的所有单元格中
于 2013-07-18T10:51:20.593 回答