在VBA中,如何根据工作表上的位置枚举命名范围条目
我已在工作表中将命名范围逐一排列。
在用户窗体(包含一个列表框)的初始化事件中,当每个条目都是一个命名范围的名称时,我将条目添加到列表框中。
到目前为止,我设法根据命名范围的字母顺序加载列表中的条目,因此以“a”开头的名称位于列表顶部,“z”位于底部。
我希望条目按照它们在工作表中出现的顺序排列,因此靠近 A1 的命名范围将出现在列表的顶部,A1 下的命名范围将是第二个条目,依此类推,直到最后一个命名的条目工作表中的范围(位于工作表底部),这当然将是最后一个条目。
有人能找到一种优雅的方式来做到这一点吗?
I have named ranges arranged one under another in a worksheet.
In the Initialize Event of a userform (that contains a listbox), I add entries to the listbox when each entry is a name of one named range.
By now I managed to load the list up with entries according to the alphabetic order of the named ranges, so the names starting with 'a' are at the top of the list and 'z' at the bottom.
I want the entries to be at the order they appear in the worksheet, so the named range appearing closer to A1 will appear at the top of the list, and named range under A1 will be the second entry and so on up to the last named range in the worksheet (at the bottom of the worksheet) which of course will be the last entry.
Can anyone find an elegant way of doing this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
试试这个:
Try this:
我不确定这是否是一个优雅的解决方案,但它是一个简单的解决方案。
下面的代码假设范围名称位于 Sheet2 的单元格 A1、A2、A3 等中,并且列表以空白单元格终止。它还假设 B、C 等列中没有任何内容。您必须根据真实情况调整代码。
结果是一个包含五列的表格:
按第 4 列和第 5 列排序后,该表格将按照您查找的顺序排列。
I am not sure if this is an elegant solution but it is a simple solution.
The code below assumes that the range names are in Cells A1, A2, A3, etc. of Sheet2 and that the list is terminated by a blank cell. It also assumes there is nothing in columns B, C, etc. You will have to adjust the code for the true situation.
The result is a table of five columns:
After sorting by columns 4 and 5, the table will be in sequence you seek.