0

我想使用字符串 FindString 的每个实例中的值来填充 UserForm1 中的文本框。

我得到每个文本框唯一的工作表。但是其余的值来自我运行模块时活动的工作表。

这意味着字符串 Rng 不会循环通过 WorkSheet,而是与初始 WorkSheet 保持一致。我该如何补救?

Public Sub FindString()
Dim FindString As Variant
Dim Rng As Range
Dim SheetName As String
Dim ws As Worksheet
Dim i As Integer

Application.ScreenUpdating = False
SheetName = ActiveSheet.Name

FindString = Cells(ActiveCell.Row, 1).Value

FindString = InputBox("Enter the case number to search for:", "Case ID", FindString)
If FindString = "" Then Exit Sub
If FindString = False Then Exit Sub


i = 1

For Each ws In Worksheets
    If ws.Name Like "Lang*" Then
        With ws

            If Trim(FindString) <> "" Then
                With Range("A:A")
                    Set Rng = .Find(What:=FindString, _
                                    After:=.Cells(.Cells.Count), _
                                    LookIn:=xlValues, _
                                    LookAt:=xlWhole, _
                                    SearchOrder:=xlByRows, _
                                    SearchDirection:=xlNext, _
                                    MatchCase:=False)
                    If Not Rng Is Nothing Then

            UserForm1.Controls("TextBox" & i) = ws.Name & vbTab & _
            Rng.Offset(0, 2).Value & vbTab & _
            Rng.Offset(0, 5).Value & vbTab & _
            Rng.Offset(0, 6).Value & vbTab & _
            Rng.Offset(0, 7).Value & vbTab & _
            Rng.Offset(0, 8).Value

            i = i + 1

                    Else: GoTo NotFound
                    End If
                End With
            End If

        End With
    End If
Next ws

Sheets(SheetName).Activate
Application.ScreenUpdating = True
UserForm1.Show

Exit Sub

NotFound:
Sheets(SheetName).Activate
Application.ScreenUpdating = True
MsgBox "Case ID not found"
Exit Sub

End Sub
4

1 回答 1

0

知道了!

只需要添加

ws.Activate

If ws.Name Like "Lang*" Then

于 2013-08-26T21:22:26.057 回答