访问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到variables
v
。 这是合并范围显示的值 - 取消范围
- 将logging值(
v
)写入现在未合并范围的所有单元格中