很遺憾,我不得不承認,我放棄了在VBA編程語言中8小時搜索正確的CRC8代碼。 有很多例子,但我還沒有找到適合我的例子。所以在這裏,請求你的幫助,如果有人可以給我寫這段代碼,或者如果有一個神祕的鏈接,我沒有點擊。在VBA中計算CRC8
說明:
AppID = "A00000039656434103F0154020D4000A"
在我的項目,則要求字符「A」在這的AppID結束,因爲在此基礎上的CRC8應計算。如果理解正確的我有32-byte
ID,關於這一點我想要做的16bits
的CRC8檢查(因爲我可能在試圖寫這個CRC8功能整天都瘋了)(這是否有道理?)
在給定的例子,我的CRC8應該返回什麼只有結果:
CRC8 = 0x6D
,我需要更換下部nible與字符「A」在我的主要的AppID:
FinalAppID = "A00000039656434103F0154020D4000D"
問題:但我根本不知道如何編寫,也無法將C++/C#中的代碼進行轉換。而且我一步一步地完成轉換,但它沒有奏效。
這是我使用的代碼:
我現在不在辦公室,所以有可能在上面的代碼中錯別字,或者一些愚蠢的錯誤,我剛纔寫的我的頭,因爲我一整天都在用它。
與上述代碼發生的問題是:
錯誤:
Error: Overflow!
即使我通過entire string
,或只是16bits
發生該錯誤。同樣的錯誤。
如果有人有什麼可以幫助我的話,我會非常感激他!
你知道哪一行會導致溢出嗎?你確定你的UDF工作正常嗎? – James 2014-10-30 22:20:53
不幸的是@James我不是那麼好的VBA,最近剛剛開始編碼,只是因爲他們告訴我的這個「小」項目。我不是很好,但在調試。但是,當我MsgBox的CRC8 ..我有一些奇怪的數字..如大負數。 我會再次檢查StringToArray函數。但我認爲它工作正常,我做了一些測試。 我也嘗試關閉錯誤消息,但我找不到這樣做的選項?當我搜索如何將其關閉時,我沒有在網絡上的每個鏈接中提到的解決方案資源管理器。 – 2014-10-30 22:23:50
這是一個有趣的問題,但您確實需要用*** ***代碼替換它,並讓我們知道發生錯誤的位置。 – RubberDuck 2014-10-31 09:52:25