请教如将这段VBA的程序转换成用C#来写?

leiguo1985 2012-02-08 10:15:16
网上一段在excel写的 vba,
有没有高手帮用C#与改写:
代码如下:
Function code128b(Tar As Range) '128B码:ChrW(204).
Dim s$, i%, ss$, j%, checkB%
s = Tar.Value
checkB = 1 '开始位的码值为104 mod 103 =1
For i = 1 To Len(s)
ss = Mid(s, i, 1)
j = Asc(ss) '不过滤无效字符,比如汉字.
If j < 135 Then
j = j - 32
ElseIf j > 134 Then
j = j - 100
End If
checkB = (checkB + i * j) Mod 103 '计算校验位
Next
If checkB < 95 And checkB > 0 Then '有的资料直接求103的模,解说不充分,因为有的校验位超过127时,系统会"吃"掉它们(连带休止符).
checkB = checkB + 32
ElseIf checkB > 94 Then '字体设置时,字模被定义了2个值.观察字体文件时能发现.
checkB = checkB + 100
End If
code128b = ChrW(204) & s & IIf(checkB, ChrW(checkB), Chr(32)) & ChrW(206)
End Function

注:这个是把CODE128码加上前后较验码的方法。
...全文
234 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq598235031 2012-02-09
  • 打赏
  • 举报
回复
vb,c#语言不是很难的东西,其实俩者差不多
leiguo1985 2012-02-09
  • 打赏
  • 举报
回复
ascii.GetString() 不行,我试过了,返回的字符与excel中是不一样的
Chrw函数,是返回UNICODE
shashengduguzhe 2012-02-08
  • 打赏
  • 举报
回复
VBA 的基本语言就是VB。 如果你会VB、c#,改写就简单了。
leiguo1985 2012-02-08
  • 打赏
  • 举报
回复
真的没有高手了吗?
leiguo1985 2012-02-08
  • 打赏
  • 举报
回复
没有人知道吗?UP
leiguo1985 2012-02-08
  • 打赏
  • 举报
回复
我先试下,不过,我查的是转换成UNICODE
shashengduguzhe 2012-02-08
  • 打赏
  • 举报
回复
Chrw是返回与ANSI 字符代码相对应的字符。 使用这个试试ascii.GetString();
leiguo1985 2012-02-08
  • 打赏
  • 举报
回复
其它都没有问题就是VBA中这个函数ChrW()的意思是:
将UNICODE码值转换成UNICODE的字符,那对应C#是哪个方法不太清楚?

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧