有人可以帮我解决以下问题:如果用户在名为“数据”的工作表中将“10”放入B6,那么B7向下将计算到数字,例如B7为“1”,B8为“2”,B9为“3”,依此类推 然后,用户在这些数字的右侧放置一个值,然后单击屏幕上的按钮,从名为“ML”的模板表创建以下新表。 例如B6为“1”,C6为“3”,则创建4张(“ML”的副本),称为“1.1”,“1.2”和“1.3” B7为“2”,C7为“5”,然后创建5张(“ML”的副本),称为“2.1”,“2.2”,“2.3”,“2.4”和“2.5”
图片说明问题
答案 0 :(得分:0)
我将所有代码都放到了一个Worksheet_Change
事件宏中。这可能比您预期的更自动。应该添加错误控制以避免尝试创建具有重复名称的工作表。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$B$6" Then
Application.EnableEvents = False
With Target.Offset(1, 0)
Range(.Cells(1), .Cells(1).End(xlDown)).ClearContents
.Value = 1
.Resize(Target.Value, 1).DataSeries _
Rowcol:=xlColumns, Type:=xlLinear, Step:=1
End With
Target.Offset(0, 1).Activate
ElseIf Not Intersect(Target, Columns("C")) Is Nothing Then
If Target.Row > 6 And Application.Count(Target.Offset(0, -1).Resize(1, 2)) = 2 Then
On Error GoTo Fìn
Application.EnableEvents = False
Dim w As Long
For w = 1 To Target.Value
Sheets.Add(after:=Sheets(Sheets.Count)).Name = _
Target.Offset(0, -1) & Chr(46) & w
Next w
Me.Activate
End If
End If
Fìn:
Application.EnableEvents = True
End Sub
如果您更喜欢按钮来创建其他工作表,并且无法删除相关的代码部分,请回发显示您自己的工作(注意任何产生错误的行)。如上所述,绝对应该解决重复工作表名称的错误控制。