有几种方法可以做到这一点.我不知道您的具体要求,因此我将简要介绍一些解决方案.
创建命名范围,但如果不正确,添加/删除数据可能会影响定义的命名范围.有时,最好将名为range的单个单元格定义为书签,然后"select range"将为您提供所有数据.
创建一个样式.将此样式应用于您要"查找"的每个数据单元格.定义一个返回Range基础的方法,单元格具有指定的样式.
创建一个PivotCache对象.此对象具有更新自身的能力,并减小文件大小,尤其是在工作簿中重复使用缓存时.它也是解决工作表中行数限制的一种方法.
创建一个列表.这有许多优点.您可以随意添加/删除数据.添加/删除列.将列表视为表格.
使用XML Mapping(http://msdn.microsoft.com/en-us/library/aa203737 ( office.11) .aspx)作为"code4life"提及.
如果工作簿是XMLSS,则定义新的命名空间并使用命名空间中的属性装饰单元格.然后,您可以使用XPath"查询".这是一个非常强大的功能,因为您可以将所需的任何内容嵌入到工作簿中.
每个都有其优点/缺点.我多次使用过每个解决方案.
AMissico 列出了一些非常好的解决方案。我想添加一个对我有用的:
在 C# (ExcelDNA/VSTO) 或 VBA 中,您可以执行以下操作:
var app = (Application) ExcelDnaUtil.Application;
app.ActiveCell.AddComment("This is an editable cell");
Run Code Online (Sandbox Code Playgroud)
明显的缺点是用户可以看到此评论 - 就我而言,它效果很好,因为我可以为用户提供有用的诊断,并且还可以解析相同的文本以获得我想要的元数据。
您还可以使用以下方法隐藏评论:
app.DisplayCommentIndicator = XlCommentDisplayMode.xlNoIndicator;
Run Code Online (Sandbox Code Playgroud)
但请注意,这会隐藏所有评论,而不仅仅是您添加的评论。要迭代工作表中的注释,您可以使用以下命令:
var comments = ((Worksheet)app.ActiveSheet).Comments;
foreach(Comment comment in comments)
{
var text = comment.Text();
// do something...
}
Run Code Online (Sandbox Code Playgroud)
我不记得有什么方法可以完全按照您的要求进行操作。我过去看到的做法是根据您可能想要查找的内容设置范围名称。另一种选择是隐藏旁边的单元格或某些其他预定的偏移量(例如,始终向右 3 个单元格,或相同位置但位于隐藏页面上)。隐藏的单元格/页面将包含您要查找的数据。
在我曾经工作过的会计师事务所中,似乎意外出现的最佳实践是,您应该将所有数据推送到隐藏的“丑陋”页面中,并使用公式/查找来引用您的数据。这样,您就可以更新“丑陋”页面并知道数据在哪里,同时拥有一个“漂亮页面”,用户可以根据自己的喜好进行调整。
| 归档时间: |
|
| 查看次数: |
7057 次 |
| 最近记录: |