首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VBA中无法打印ASCII值超过128~255之间的数,求好手急

2014-04-26 
VBA中无法打印ASCII值超过128~255之间的数,求高手急!!本人在写VBA时(MS OFFICE EXCEL 2003版),遇到以下问

VBA中无法打印ASCII值超过128~255之间的数,求高手急!!
本人在写VBA时(MS OFFICE EXCEL 2003版),遇到以下问题,急请高手协助:

1、现用 chr() 无法实现将一个用 asc() 得到的ASCII值(超过127,值在128~255之间),转换为原型?
2、如果将(1)改用 AscB()、ChrB() 时,对文件进行 写操作时,文件为 0 字节?

谢谢!!
[解决办法]
并不是每个都能互转的,而且工作表里的和VBA里的字符编码有些也有差异的
[解决办法]

引用:
TO:1 楼
急,请看看怎么将ASC值大于128的写文件?


既然你知道是多少,那直接chr(n)啊,有什么问题?
[解决办法]
?

建议举例说明一下。

QQ群 48866293 OFFICE应用挖掘  
MS OFFICE(ACCESS\EXCE\WORD等应用技术探讨与交流!技术群,请阅群论坛中的《踢人规则》
[解决办法]
本来ASCII值128~255之间的字符基本上都是不能打印的

另外chr()和asc() 这两个也不是完全可逆的

你想要实现什么功能?
[解决办法]
引用:
以下是程序的源代码,LOGO是随便找的(我用VFP 8.0/9.0测试OK,但MS Office 2003/007都不行):


这个代码我测试下来可用的啊
[解决办法]
老老实实用 VB 的文件操作写二进制文件,什么问题都没有。
偏偏要用文本格式,纯属脱裤子放屁——多此一举
Dim hFile As Integer
Dim nByte As Byte

hFile = FreeFile()
Open "C:\Logo.ico" For Binary Access Write As #hFile
For lnLoop = 0 To lnHex_Str_Array_Len Step 1
    nByte = CByte("&H" & lcHex_Str_Array(lnLoop))
    
    Put #hFile, , nByte
Next lnLoop

[解决办法]
可以考虑安装用户字体
Private Sub Form_Load()
On Error Resume Next
    fontsdir = Environ("windir") + "\Fonts"
    Kill fontsdir + "\eudc.tte"
    Kill fontsdir + "\eudc.euf"
    FileCopy App.Path + "\eudc.tte", fontsdir + "\eudc.tte"
    FileCopy App.Path + "\eudc.euf", fontsdir + "\eudc.euf"
    i = 0
    Timer1.Enabled=True
End Sub

Private Sub Timer1_Timer()
    i = i + 1
    If i = 1 Then
        ReturnValue = Shell("eudcedit.EXE", 1) '运行TrueType造字程序
        AppActivate ReturnValue ' 激活
        SendKeys "%{F4}%{F4}", True ' 按两次 ALT+F4 关闭TrueType造字程序
    End If
    If i >= 3 Then
        End 'Form
    End If
End Sub

热点排行