VBA – 如何正确使用合并单元格/大区域?

在完成一个大项目之后,我试着让代码正确。 我看了一下Clean Code ,现在我正在尽我所能去认真地应用这些规则。 我完成了命名,评论,testing等

我现在试图重构代码。 我有多个工作表,多个区域包含数千个单元格。 我在每个区域做类似的事情,所以我试图使用一般function,而不是适应每个区域的一些代码行。 根据我的工作情况,我遇到了两个问题。

这是一个简单的例子:

在引用单元格之前,我想清除它们。

第一个选项:

I loop trough zone and clear them. for each Zone in Zones zone.clearcontents [work on zone] for each cell in cells [work on cells] next next 

这曾经工作,但第二次启动后,我得到了错误“太多不同的单元格格式”,我不知道如何处理,所以我试图去那样的方式:

 for each Zone in Zones [work on zone] for each cell in cells cell.clearcontents [work on cells] next next 

但是现在我对合并的单元格有错误,“不能改变合并的单元格的部分”。

我不知道如何优化代码,保持简单并处理这些错误。 你将如何解决这个问题?