Excel 引用其他工作簿
我在这里使用指南: 我有一个工作簿“TLA Lookup.xlsx”保存在共享位置。它有一个名为TLAs的工作表。A列由TLA列表组成,B列是相应的企业名称 我有一个宏来检查TLA查找工作簿,只要TLA存在,就用业务名称替换它。我可以在同一个工作簿中执行此操作 我有不同的工作簿,希望在其中查找/替换。每次我都必须从TLA查找工作簿中复制TLA表。我想改为自动引用该工作簿 如何将TLA查找引用为宏需要在其中查找查找/替换文本的工作簿Excel 引用其他工作簿,excel,vba,loops,Excel,Vba,Loops,我在这里使用指南: 我有一个工作簿“TLA Lookup.xlsx”保存在共享位置。它有一个名为TLAs的工作表。A列由TLA列表组成,B列是相应的企业名称 我有一个宏来检查TLA查找工作簿,只要TLA存在,就用业务名称替换它。我可以在同一个工作簿中执行此操作 我有不同的工作簿,希望在其中查找/替换。每次我都必须从TLA查找工作簿中复制TLA表。我想改为自动引用该工作簿 如何将TLA查找引用为宏需要在其中查找查找/替换文本的工作簿 Sub find_replace_2() 作为字符串的Dim T
Sub find_replace_2()
作为字符串的Dim TLA
将名称设置为字符串
我想我会坚持多久
将wb设置为工作簿
Dim sht1作为工作表
'打开包含K驱动器中所有TLA和CI名称的工作簿,
“所以现在两本工作手册都打开了
工作簿。打开的文件名:=_
“K:\CLE01\Team\u QA\coming Change Highlights\TLA Lookup.xlsx”
设置wb=TLA Lookup.xlsx'您可以轻松地执行此操作,但您必须了解此工作簿
与活动工作簿
之间的区别。(有关一些指导,请参见说明和。)
有了这些知识,只需清楚您在代码中引用的工作簿:
编辑:下面示例中的扩展代码
谢谢,这确实帮助我理解了我丢失的工作簿。然而,现在实际的更换不起作用。“注释”部分不允许我将新代码放在lol中。它打开和关闭TLA查找工作簿,但它从未进行实际替换。@Shae1999-上面提供的示例中的代码在我自己的示例数据中工作。我看到的情况是,它正在进行更改,但在查找表上,而不是在我正在处理的工作表上。我想我仍然在使用ActiveWorkbook与ThisWorkbook时遇到问题。不应编辑该工作簿。我在“book1”中,突出显示了一个单元格,我希望宏引用tlaLookup工作簿,即book1单元格a1中存在的TLA的a列,并将其替换为匹配行的B列内容。因此,book1中的“ABC”现在变为“Alpha Bravo Charlie”,因为TLA查找在单元格a4中显示ABC,在单元格b4中显示Alpha Bravo Charlie。请修改代码示例以匹配您的数据、工作簿和环境。
Option Explicit
Sub find_replace_3()
Dim tlaLookupWB As Workbook
Dim tlaSheet As Worksheet
Set tlaLookupWB = Workbooks.Open(Filename:= _
"K:\CLE01\Team_QA\Upcoming Change Highlights\TLA Lookup.xlsx")
Set tlaSheet = tlaLookupWB.Sheets("TLAs")
'--- determine how many rows of TLAs exist
Dim numberOfTLAs As Long
With tlaSheet
numberOfTLAs = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
'--- replacements will be made in the currently active workbook
Dim wb As Workbook
Set wb = ActiveWorkbook
'--- now check all of the TLAs and make replacements if found
Dim i As Long
For i = 1 To numberOfTLAs
Dim tla As String
Dim name As String
tla = tlaSheet.Cells(i, 1).Value
name = tlaSheet.Cells(i, 2).Value
'--- search all of the worksheets in the current workbook
' and replace the tla with the name
Dim ws As Worksheet
For Each ws In wb.Sheets
ws.Cells.Replace What:=tla, Replacement:=name, _
LookAt:=xlWhole, SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next ws
Next i
tlaWB.Close SaveChanges:=False
End Sub