使用VBA实现简单的EXCEL异或操作

     正如EXCEL中如何使用VBA进行格式转化所述,虽然EXCEL提供了非常丰富的函数集合,但是由于种种的原因,操作者不能够充分享受到它所带来的好处,比如或常用的异或(XOR)操作。本文以一个站在初学者的角度,浅析一下如何用VBA来实现这个简单的功能。

Public Function WYQXor(r As Range) As Long

Dim row As Integer

Dim col As Integer

Dim rs  As Long

 

'XOR all cells in the range

rs = 0

For row = 1 To r.Rows.Count

   For col = 1 To r.Columns.Count

            rs = rs Xor r(row, col)

   Next

Next

 

'Return the value

WYQXor = rs

End Function 这个函数假设单元中的数据就是十进制数据,如果是其他的格式,请参考EXCEL中如何使用VBA进行格式转化文章所讲述的方法来实现它们之间的转化。对于喜欢用0x打头的用户,在转化之前要剔除0x字符串,作者提供了一个简易的版本,如下实现:

Public Function WYQHexToDec(hexStr As String) As String

WYQHexToDec= CInt(WYQConvert(Application.WorksheetFunction.Substitute(hexStr, "0x", ""), 16, 10))

End Function

 

Public Function WYQDecToHex(decStr As String) As String

Dim s As String

Dim l As Long

 

s = WYQConvert(decStr, 10, 16)

l = Len(s)

 

If (l Mod 2) <> 0 Then

        s = "0x0" & s

Else

        s = "0x" & s

End If

 

WYQDecToHex = s

End Function 其中的WYQConvert函数被实现在EXCEL中如何使用VBA进行格式转化,请参考它.作者喜欢十六进制是偶数表示,比如说0x 0A , 0x00,所以在WYQDecToHex中加入了特定的处理.

   总之,这些细节仅仅是个人爱好而以,对于它的通用版本,我认为WYQConvert是比较完整的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值