我有此代碼的工作,其具有在定期的時間(A2),超時(B2)填充的一個非常簡單的目的,和雙OT(C2)的工作基於該值I輸入變成幾小時(E2)。類型不匹配的錯誤宏
我創建了宏,試圖爭搶在一起正確的代碼(如需要,我可以以後正確的),現在我的代碼高亮行收到「不匹配錯誤」。我在網上搜索了幾種不同的資源,但似乎無法弄清楚我錯過了什麼。我把單元格E2的值定義爲double,並且我有一個測試值(15.7)輸入到適當的單元格(E2),但它仍然顯示單元格E2沒有值。
任何幫助表示讚賞。
我有此代碼的工作,其具有在定期的時間(A2),超時(B2)填充的一個非常簡單的目的,和雙OT(C2)的工作基於該值I輸入變成幾小時(E2)。類型不匹配的錯誤宏
我創建了宏,試圖爭搶在一起正確的代碼(如需要,我可以以後正確的),現在我的代碼高亮行收到「不匹配錯誤」。我在網上搜索了幾種不同的資源,但似乎無法弄清楚我錯過了什麼。我把單元格E2的值定義爲double,並且我有一個測試值(15.7)輸入到適當的單元格(E2),但它仍然顯示單元格E2沒有值。
任何幫助表示讚賞。
Calculations
是一個工作表對象。
Worksheets(value)
可以傳遞字符串值,即工作表名稱(例如Worksheets("Calculations")
)或索引(例如Worksheets(1)
),但它不能傳遞工作表對象。
變化所有的Worksheets(Calculations)
用途到Worksheets("Calculations")
(例如Worksheets("Calculations").Range("E2").Value
),或完全繞過Worksheets
方法,只是使用Calculations
(例如Calculations.Range("E2").Value
)。
還要注意的是,如果該語句的前面部分已被評爲True
您If
聲明ElseIf
部分將不會被處理。您的發言的第一部分將執行,如果Hours > 8
,所以沒有其他步驟將評估除非時間< = 8
您還可以在您使用的And
操作者錯誤的發言。一個And
運營商檢查是否左邊的操作數和右操作數都是True
,如果是這樣,則返回True
,否則返回False
。 (例如If x > 5 And x < 20 Then
這樣的陳述將是一個明智的方式來使用它)。我相信你正在嘗試使用它來執行兩個語句。正確的語法可以像x = 5 : y = 2
那樣,或者將兩個語句放在不同的行中。
我相信下面會做你想達到什麼目的:
Sub Calculate
With Calculations
hours = .Range("E2").Value
If hours <= 8 Then
.Range("A2").Value = hours
.Range("B2").Value = 0
.Range("C2").Value = 0
ElseIf hours <= 12 Then
.Range("A2").Value = 8
.Range("B2").Value = hours - 8
.Range("C2").Value = 0
Else
.Range("A2").Value = 8
.Range("B2").Value = 4
.Range("C2").Value = hours - 12
End If
End With
End Sub
上傳你的代碼作爲文本,需要具有爲圖像我們很少使用 –