UnMerge无法在Access VBA中工作的原因是什么?

问题描述 投票:0回答:1

我在Access 2016中有一个VBA宏(实际上,是为早期版本编写的,但现在我正在使用2016。)它的作用是调整几个Excel电子表格,并将它们移动到另一个位置,同时还将一些日志写入SQL表。

一项调整是合并某些合并的单元格。奇怪的是,当以编程方式(从另一个Access DB中的另一个宏)触发该Access DB时,那些excel文件有时无法处理(并非总是如此)。当我手动启动它或逐步进行调试时,它始终可以工作-我感到困惑,无法找到原因。

我尝试将“ MergeCells = False”替换为“ Unmerge”-相同。我也尝试制作新的ACCDE文件-没有结果。

这是代码的一部分,在其中发生合并。

xlsh.Select
xlsh.Range("A1:D1").Select
xlsh.Outline.ShowLevels RowLevels:=2
With Selection
    .UnMerge
End With
xlsh.Range("A1").Value = "Alfa"
xlsh.Range("B1").Value = "Bravo"
xlsh.Range("C1").Value = "Golf"
xlsh.Range("D1").Value = "Tango"
xlsh.Range("A1").Select
If xlsh.Range("A1").Value = "" Then GoTo error

[如果无法取消合并单元格,则不会分配该值,并且最后它为空,因此继续标记'错误'。

excel vba ms-access merge
1个回答
0
投票

尝试这个:

xlsh.("A1:D1").Unmerge

代替

xlsh.Select
xlsh.Range("A1:D1").Select
xlsh.Outline.ShowLevels RowLevels:=2
With Selection
    .UnMerge
End With

最后两行是不必要的:

If xlsh.Range("A1").Value = "" Then GoTo error

将不正确,因为您之前要分配一个值。 (xlsh.Range("A1").Value = "Alfa"

© www.soinside.com 2019 - 2024. All rights reserved.