如图,工作表“检测成绩”是一个动态的表,当我在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