【问题标题】:VBA merge and unmerge according to if statementVBA根据if语句合并和取消合并
【发布时间】:2016-10-14 09:59:25
【问题描述】:

示例图片

我在使用 VBA 合并 Excel 中的数据时遇到问题。

基本上,我希望每个单元格行的大小相同,并且当一个单元格与特定名称匹配时,我希望某些单元格(名称前面的特定 2 组行)合并并居中,而其他单元格只是合并但这样,列中的一些单元格有一个数字,而其他单元格有一个百分比和分数,如上图示例所示。

我想知道 offset 在这里是否也有用?

这里有一些伪 ish 代码给你一个想法:基本上,如果 A 范围内的一个单元格匹配一种颜色(或我输入的任何颜色),那么我们想要合并并居中两行单元格和 3 列。否则,如果 A 范围中的单元格与名称(或我输入的任何内容)匹配,则将单元格分开但可能合并。

sub example1()

if (cell in A range) = "red", "orange", "yellow", "green", "blue",
then offset ( , 1) and merge&center 
else if (cell in A range) = "sarah", "mark", "bob", "steve", "Brittany",
then offset (, 1) and leavealone or merge just across

end if

end sub

【问题讨论】:

  • 欢迎来到 SO。如果您真的想从该站点获得帮助,您需要提供更具体的问题和一些代码。
  • 好的,我添加了电子表格的图片文档并稍微改变了我的问题。出于安全原因,我不得不把它作为一个非常平淡的例子(显然不能使用我的真实数据),但我认为这很好地说明了我想要做什么。任何帮助表示赞赏。我对 vba 还很陌生,所以请耐心等待
  • 列中的数据是否以每行 1 个名称开头?您的查找表是否已经合并?
  • A 列中的数据是每 2 行 1 个名称。因此,该列充满了静态数据,并且可以开始合并,而 B 列将合并或保持拆分,具体取决于 A 列中它旁边的内容。
  • 我需要更多关于名字的解释... 1. 你知道所有名字吗?它是常量还是动态列表? 2. 如果这个名称不符合您的条件(它是新名称),那么带有名称的单元格怎么办?也许更好的是合并所有具有任何名称的单元格,只排除那些应该不理会的单元格? 3. 'Sarah' 和 'Mark' 是一个有 2 行的单元格还是两个单元格? 4. 为什么“黄色”是 18?

标签: vba excel merge


【解决方案1】:

就像 Scott Holtzman 所说的更具体的问题,任何例子都有助于更好地理解......但是基于我们所拥有的:

我想我需要先合并每 2 个单元格并将其居中,然后需要一个 if 语句说明它是否用“”突出显示需要拆分的任何名称的单元格,取消合并单元格,否则让它们合并并慢跑.

在同一个动作中做某事并在下一次撤消该动作可能不是一个好主意...如果您在之前检查条件然后只执行一个特定的动作会更好。

我假设您使用某种循环?那么,您是否可以先检查您的 'if/else' 条件,然后再执行合并或拆分?

真的,这里的例子会很有帮助。

我想知道 offset 在这里是否也有用?

我无法想象为什么?如果我理解您的问题,您的 VBA 中只需要 `if / else if / else' 条件。

【讨论】:

  • 好的,我添加了电子表格的图片文档并稍微改变了我的问题。出于安全原因,我不得不把它作为一个非常平淡的例子(显然不能使用我的真实数据),但我认为这很好地说明了我想要做什么。任何帮助表示赞赏。我对 vba 还很陌生,所以请耐心等待。
猜你喜欢
  • 1970-01-01
  • 2020-01-28
  • 2018-07-22
  • 2019-11-14
  • 1970-01-01
  • 1970-01-01
  • 2016-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多