我有一个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参考(匹配线),有什么建议吗?
一如既往,在此事先感谢,我非常感谢所有的帮助。
答案 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