到目前为止,我已经获得了VBA代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value > 0 Then Target.Resize(, Application.Min(400, 2 * Target.Value)).Select
End Sub
这就是我想要的;根据我在工作簿中的任何位置写入的数字(* 2,最大限制为400个单元格)选择范围。我需要帮助的问题是,如果我键入内容(文本)或删除某些内容,我会收到运行时错误13。关于如何修改此代码的任何想法将不胜感激。
//克里斯
答案 0 :(得分:0)
您需要阻止下一步操作重新触发相同的宏:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value > 0 Then
Target.Resize(, Application.Min(400, 2 * Target.Value)).Select
End If
End Sub
答案 1 :(得分:0)
这是我最终的VBA。
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Error_handler:
If Val(Target.Cells(1).Value) > 0 Then Target.Resize(, Application.Min(400, 2 * Target.Value)).Select
Exit Sub
Error_handler:
MsgBox "Error Handler"
End Sub
这将选择单元格值指定的范围,并允许进行文本和其他编辑,以及通过显示MsgBox“错误处理程序”来处理最终错误