【发布时间】:2026-02-03 19:45:01
【问题描述】:
我有以下代码用于在名为“Front_Wing”的工作表中搜索一系列单元格。它将与工作表中名为“Acronyms”列 A 的值匹配的任何单元格值替换为“Acronyms”列 B 中的单元格值。
我有多个工作表,而不仅仅是“Front_Wing”,所以我想修改此代码以循环访问多个工作表。
Private Sub CommandButton2_Click()
Dim wsR As Worksheet
Dim wsData As Worksheet
Dim rng As Range, rngR As Range
Dim i As Long
Dim rngReplacement
Dim c As Range
Dim curVal As String
Set ws = ThisWorkbook.Sheets("Front_Wing")
Set wsR = ThisWorkbook.Sheets("Acronyms")
i = ws.Rows.Count
With ws
Set rng = ws.Range("B10", ws.Range("C" & i).End(xlUp))
End With
With wsR
Set rngR = .Range("A1", .Range("A" & i).End(xlUp))
End With
For Each c In rngR
curVal = c.Value
With rng
.Replace curVal, c.Offset(0, 1).Value, xlWhole, , True
End With
Next
End Sub
【问题讨论】:
-
您是否要遍历所有工作表,但仍只查看“首字母缩略词”作为替换值?
-
不是全部,只有少数几个,即:“Bodywork_Internal”、“Bodywork_Lower”和“Chassis”。但是是的 - 总是在看“首字母缩略词”
-
由于它是特定的工作表,因此您可以创建一个循环来遍历一组工作表名称(您给出的名称)。那将是最简单的,而不是遍历所有文件并限制几张纸,imo。
-
是的 Cyril,但这是我正在努力解决的循环代码
-
我刚刚开始起草答案,但我承认我不是最擅长使用数组。需要对其进行一些测试。