簡體   English   中英

根據在任何單元格中輸入的數字選擇范圍

[英]Select range based on number entered in any cell

到目前為止,我已經獲得了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。 關於如何修改此代碼的任何想法將不勝感激。

//克里斯

您需要防止您的后續操作重新觸發相同的宏:

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

這是我最終得到的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“ Error Handler”進行文本和其他編輯以及處理最終錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM