Vba Excel:给定变量的查找表名称Excel
我有一本包含多个项目的工作簿。每个项目都有自己的工作表。在每一张表中,都有订单编号(“OrderNub”)列 在另一张名为“主列表”的表格中,包含所有项目的所有订单号。此列表在A列中 我需要一个函数或宏来搜索我的所有工作表(条形图主列表),并在B列中显示工作表名称 以下是我在Excel中的内容:Vba Excel:给定变量的查找表名称Excel,vba,excel,Vba,Excel,我有一本包含多个项目的工作簿。每个项目都有自己的工作表。在每一张表中,都有订单编号(“OrderNub”)列 在另一张名为“主列表”的表格中,包含所有项目的所有订单号。此列表在A列中 我需要一个函数或宏来搜索我的所有工作表(条形图主列表),并在B列中显示工作表名称 以下是我在Excel中的内容: Option Explicit Function FindMyOrderNumber(strOrder As String) As String Dim ws As Worksheet
Option Explicit
Function FindMyOrderNumber(strOrder As String) As String
Dim ws As Worksheet
Dim rng As Range
For Each ws In Worksheets
If ws.CodeName <> "MasterList" Then
Set rng = Nothing
On Error Resume Next
FindMyOrderNumber = ws.Name
On Error GoTo 0
If Not rng Is Nothing Then
FindMyOrderNumber = ws.Range("A1").Value
Exit For
End If
End If
Next
Set rng = Nothing
Set ws = Nothing
End Function
选项显式
函数FindMyOrderNumber(strOrder作为字符串)作为字符串
将ws设置为工作表
变暗rng As范围
对于工作表中的每个ws
如果ws.CodeName为“主列表”,则
设置rng=无
出错时继续下一步
FindMyOrderNumber=ws.Name
错误转到0
如果不是,那么rng什么都不是
FindMyOrderNumber=ws.Range(“A1”)值
退出
如果结束
如果结束
下一个
设置rng=无
设置ws=Nothing
端函数
name列位于哪里?该列位于A(1)行,标题名为OrderNub.Engineer Toast。我复制并粘贴了您的代码,但不能在excel中运行。您可以将其作为公式的一部分放在单元格中。由于您声明主列表使用A列和B列,B2
的公式是=FindMyOrderNumber($A2)
Engineer Toast,因此我复制并粘贴了您的宏,在我的宏列表中没有选择。1) 在每个工作表中,a列中都有一个表格,标题在A1中,下有订单号。3) 我不确定代码名是什么。我编辑了这篇文章,试图做更多的解释。这是一个函数,不是一个子例程。那就意味着你没有管理它。您可以像使用任何其他内置函数一样,将其用作单元格中公式的一部分。从你的问题来看,这似乎不是一次性的需要。如果您想要一个手动运行的版本,该版本可以在所有a:a
中循环,并在B:B
中返回值,那么添加起来就很容易了。我将您的代码作为模块插入,然后在MasterList的B列中运行函数,没有填充任何内容。我可能把你的射程弄乱了。如果这个“OrderNub”总是在everyworksheet的A列中,您能告诉我范围(第11行)是什么样子的吗?
Option Explicit
Function FindMyOrderNumber(strOrder As String) As String
Dim ws As Worksheet
Dim rng As Range
For Each ws In Worksheets
If ws.CodeName <> "MasterList" Then
Set rng = Nothing
On Error Resume Next
Set rng = ws.Columns(1).Find(strOrder)
On Error GoTo 0
If Not rng Is Nothing Then
FindMyOrderNumber = ws.Name
Exit For
End If
End If
Next
Set rng = Nothing
Set ws = Nothing
End Function
=FindMyOrderNumber($A2)