3
由於這些是交換和關聯運算符,我沒有理由將它們限制爲兩個參數。將Excel按位函數(BITAND或BITOR)應用於數值較大的範圍
我可以用我的非負Long
值寫了2 以下VBA功能,但它會溢出的更大的東西。
Function RangeBitOr(rng As Range) As Long
Dim i As Long
Dim cell As Range
i = 0
For Each cell In rng
i = i Or CLng(cell.Value)
Next cell
RangeBitOr = i
End Function
Excel的內置函數BITAND
和BITOR
(在Excel 2013中引入)可以處理值一路攀升至2 - 1,我想應用到一系列的這種能力。
是否有一個簡單的方法讓這些位操作符在最大範圍內工作?
一對夫婦的解決方法我試過:
創建兩個新列,並使用
MOD
較大值分裂成兩個較小的,然後用每個那些我RangeBitOr
功能,然後把數值回到一起。爲
BITOR
函數創建一個列,將運行中的聚合與當前值組合,並將最後一個作爲範圍的總計BITOR
。
理想情況下,我想有一個不需要幫助列或VBA的解決方案,但我願意接受任何有用的建議。
您是否使用Excel的32位或64位版本? – Comintern
64位Excel 2016 –
它沒有64位安裝方便,但在單元格A1中輸入值9223372036854770000,並查看「Debug.Print TypeName(Range(」A1「)。Value)'返回的內容。 – Comintern