[英]Run-Time Error 13: Type Mismatch
我在以下宏上收到“運行時錯誤13:類型不匹配”(調試行突出顯示)。 我的目標是檢查第1行是否有大於1的數量,以警告用戶時鍾正在運行,然后退出宏。 第1行中的數字表示用戶已開始一項活動的時鍾,但時鍾一次只能運行一個活動。 我嘗試在第1行中使用“ ON” ...將StartOnRow設置為Text ...但出現相同的錯誤。 非常感謝您的幫助!
Sub StartRunningTimer()
Dim StartOnRow As Integer
**StartOnRow = Range("a1:bj1")**
If StartOnRow > 1 Then
MsgBox ("Please stop the previously started activity")
If StartOnRow = True Then Exit Sub
End If
Worksheets("TimeElapsed").Activate
nr = ThisWorkbook.Sheets("TimeElapsed").Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(nr, 1) = Format(Now(), "m.d.yy h:mm:ss")
If Not Started Then
myTime = Time
Started = True
Else
Worksheets("TimeElapsed").Cells(1, 1).Value = "ON"
Worksheets("Dashboard").Cells(64, 2).Value = "PRESS IS RUNNING"
Worksheets("Dashboard").Cells(65, 2).Value = "Time Started: " & Format(Now(), "hh:MM:ss")
Worksheets("Dashboard").Cells(74, 2).Value = ""
Worksheets("Dashboard").Cells(75, 2).Value = ""
Worksheets("Dashboard").Activate
End If
End Sub
我認為您需要Set
語句:
Set StartOnRow = Range("a1:bj1")
同樣,Range返回一個Range對象,而不是整數:
Dim StartOnRow AS Range
Set StartOnRow = Range("a1:bj1")
如果您要在任何這些單元格中尋找大於一個的值,則只需在BK1
中使用一個輔助單元格即可對整個行進行求和。 檢查該單元格StartOnRow = Range("BK1").Value
至於您的問題,@ roryap是正確的。 像這樣使用Range
,您會得到一個對象並需要進行set
但是仍然無法獲得所需的對象,因為您需要遍歷范圍然后找到一個值> 1。
Dim StartOnRow as Range
Dim cellCheck as Range
Set StartOnRow = Range("A1:BJ1")
For Each cellCheck in StartOnRow
if cellCheck.value > 1 Then
'Stop
'Exit Sub
End if
Next cellCheck
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.