Excel - 在多个工作表中处理文本

时间:2011-11-12 17:23:54

标签: excel worksheet-function

我有一个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参考(匹配线),有什么建议吗?

一如既往,在此事先感谢,我非常感谢所有的帮助。

1 个答案:

答案 0 :(得分:0)

一种方法是编写一个返回所需字符串的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