excel高手请进:怎样通过VBA动态找到对应的工作表(如下图)?

如图,工作表“检测成绩”是一个动态的表,当我在A1中输入一个四位数时,因为最高位是7,所以,我想把上面的成绩录入到工作表“7E”的对应人名后,如果这个四位数的最高位是6,就要把成绩录入到工作表“6E“中,如果这个四位数的最高位是3,就要把成绩录入到工作表”3E“中。也就是说,根据这个四位数的最高位来找到对应的工作表。敬请大神们赐教!

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address(0, 0) = "A1" Then

        If Target.Value = "" Then Exit Sub '退出sub

        '遍历每一位数字找出最大值x

        Dim i%, istr$, x%

        istr = Target.Value

        For i = 1 To Len(istr)

            x = WorksheetFunction.Max(x, Val(Mid(istr, i, 1)))

        Next

        '判断是否存在目标工作表,存在则标记为:tf=true

        Dim sht As Worksheet, tf As Boolean

        istr = x & "E" '拼接表名

        For Each sht In Worksheets

            If sht.Name = x & "E" Then

                tf = True '存在此表则标记为True

                Exit For '退出for

            End If

        Next

        '根据标记tf,判断是否需要退出程序

        If tf Then

            Set sht = Sheets(istr) '令sht为目标工作表

        Else

            MsgBox "不存在名称为" & istr & "的表", 16

            Exit Sub '退出sub

        End If

        'sht就是目标表,下边就发挥你的才能去操作sht表吧

        Dim g As Range

        Set g = Range("B1:F2") '令g为该区域

        sht.Range("A2").Resize(g.Columns.Count, g.Rows.Count) = WorksheetFunction.Transpose(g.Value)

    End If

End Sub

温馨提示:答案为网友推荐,仅供参考