【问题标题】:Excel - working with text across multiple worksheetsExcel - 跨多个工作表处理文本
【发布时间】:2011-11-12 17:23:53
【问题描述】:

我有一个 Excel 文件,它使用多个工作表来汇总付款和多个属性的付款时间表。

它的设置使第一张表是所有内容的摘要,随后的表详细说明了不同的属性。我有一列(仅用于描述),我想将文本带回第一张表,如果后续表中有多个条目,请告诉我。

我知道 excel 不喜欢在多个工作表中处理文本,所以下面的代码可以很好地为我带来一个条目。它将始终位于后续工作表的同一单元格中。

=IF(COUNTA(Sheet1:Sheet5!D15)=0,"", IF(COUNTA(Sheet1:Sheet5!D15)=1, (Sheet1!D15&Sheet2!D15&Sheet3!D15&Sheet4!D15&Sheet5!D15), "--> Multiple Entries"))

但是,我遇到了一种情况,我确实需要在后续工作表中放置两个相同的条目。

例如使用 |作为换页符

"" | “付费#1” | "" | “”

“付费#1”| “付费#1” | "" | ""

"" | “付费#2” | “付费#1” | “”

案例 #2 是一个奇怪的案例,其中可以有多个相同的条目,但需要突出显示它们不同的案例 #3,因为我现在有它(--> 多个条目)就足够了。现在这两种情况都会突出显示。

我真的不知道从哪里开始,我找不到处理文本的 3d 参考(类似于匹配的东西),有什么建议吗?

与往常一样,提前致谢,我非常感谢所有帮助。

【问题讨论】:

    标签: excel worksheet-function


    【解决方案1】:

    一种方法是编写返回所需字符串的 UDF。不幸的是,UDF 参数不支持 3D 范围,因此需要解决。

    根据您的问题,您似乎希望在除摘要表之外的所有工作表中考虑相同的单元格。在此基础上,此 UDF 将返回所有工作表中相同单元格的串联,但放置公式的工作表除外。您可以对其进行调整以根据需要返回其他内容。

    请注意,我让演示方法保持简单,您需要处理错误情况,例如 r 引用 >1 个单元格或另一个工作表/工作簿上的单元格。

    Function MergeSheets(r As Range) As Variant
        Dim a As String, s As String
        Dim sh As Worksheet
        Application.Volatile
    
        a = r.Address
        For Each sh In r.Worksheet.Parent.Worksheets
            If sh.Name <> r.Worksheet.Name Then
                s = s & sh.Range(a).Value
            End If
        Next
        MergeSheets = s
     End Function
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 1970-01-01
      • 2010-10-30
      • 2020-08-04
      • 2011-02-27
      • 1970-01-01
      相关资源
      最近更新 更多