【发布时间】:2018-04-29 23:46:31
【问题描述】:
我也是 stackoverflow 和 VBA 的新手。我正在尝试编写一个代码,它从一个工作表选项卡读取文件的名称,转到另一个工作表选项卡,查找此文件名。如果代码从 Sheet1 中找到与 Sheet2 中完全相同的文件名,则会突出显示 Sheet2 中该单元格的颜色。我在这方面取得了部分成功。以下是问题:
在 Sheet1 中,文件名类似于 FILE 001、FILE 028、FILE 38、FILE 102 等。我手动更改了一些文件名,使其编号为三位(只是为了测试代码)。只要代码到达 FILE 38,它就会停止。那么问题1,我怎样才能首先将所有文件名更改为名称中包含3位数字?
其次,在 Sheet2 中,FILE 001 多次出现。我的代码仅突出显示它找到的第一个实例。如何解决这个问题?我正在复制下面的代码并感谢帮助。
Sub ColorImportantFiles()
Dim NumberOfCells As Integer
Dim LoopCounter As Integer
Dim FileName As String
Dim SearchFileRange As Range
Worksheets("Sheet1").Activate
NumberOfCells = Range("A3:A38").Count
For LoopCounter = 1 To NumberOfCells
Worksheets("Sheet1").Activate
FileName = Range("A2").Offset(LoopCounter, 1).Value
Worksheets("Sheet2").Activate
Set SearchFileRange = Range("B3", Range("B2").End(xlDown))
If SearchFileRange.Find(what:=FileName, lookat:=xlWhole) = FileName Then
SearchFileRange.Find(what:=FileName, lookat:=xlWhole).Interior.Color
= rgbBlueViolet
Else: Exit Sub
End If
Next LoopCounter
End Sub
【问题讨论】:
-
您可以使用条件格式进行着色。不需要 VBA。
-
要添加零,您可以在工作表的其他地方使用如下公式,然后将结果复制为原始数字上的值:
= "FILE " & TEXT(SUBSTITUTE(A3, "FILE ",""),"000"), -
不要追溯更改文件名,而是在 in