我想写一个代码,让VBA找到当前打开的文件名,然后查找excel工作表,找到具有完全相同值的单元格。由于文件类型是. dgn类型,我尝试使用FileSystemObject。但是我被困在如何编写它来读取当前打开的文件名上。
找到匹配的单元格后,我想执行该单元格的行号。
祝好
我假设“当前打开的文件名”是指VBA代码所在的工作簿的名称。
此外,假设您的数据存储在名为“Sheet1”的工作表中。对于此示例,数据范围如下所示:
Option Explicit
Private Sub Answer()
' Get the name of this document
Dim DocumentName As String
DocumentName = ThisWorkbook.Name
' Search for the name of the document in the range
Dim MyRange As Range
Set MyRange = ThisWorkbook.Sheets("Sheet1").Range("A1:A4")
Dim CellAddress As String
CellAddress = FindCell(CellRange:=MyRange, SearchContent:=DocumentName)
' Output the result as a message
MsgBox "The first cell with " & DocumentName & " in it is at " & CellAddress
End Sub
Private Function FindCell(CellRange As Range, SearchContent As String) As String
' Return the cell address of the first cell found in CellRange that has
' CellContent in it
' Iterate through the range
Dim Cell As Variant
For Each Cell In CellRange
If Cell.Value = SearchContent Then
FindCell = Cell.Address
Exit Function
End If
Next Cell
End Function
我创建了一个名为FindCell
的函数,它返回与我们正在搜索的数据匹配的范围内第一个单元格的单元格地址。在本例中,我们正在搜索具有此工作簿名称的第一个单元格(我称之为“Book1”)。
正如其他用户所指出的,当您提出问题时,请包含更多细节。我不得不做一些大的假设来把这个例子放在一起。