今天测试发现,vba模块中,调用WritePrivateProfileString函数,存在最大字符数的限制。
在vba中,循环调用
sOrderIDIgnoreNew=sOrderIDIgnoreNew & "," & sOrderID
Call document.WritePrivateProfileString("OrderID", "OrderIDCol",sOrderIDIgnoreNew, sOrderIDFile)
当sOrderIDFile文件中的OrderIDCol的长度达到276后,再增加sOrderIDIgnoreNew长度保存时,就不能完全保存了。 只会更新最后几个字符。
我想问下,这个最大的长度能调整吗?
我贴下代码吧:
Sub test_bzj()
sOrderIDIgnoreNew="-53203475,-53203473,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203475,-53203471,12345678901234567890"
Call document.WritePrivateProfileString("OrderID", "OrderID",sOrderIDIgnoreNew, "C:\test.ini")
sOrderIDIgnoreNew=document.GetPrivateProfileString("OrderID", "OrderID","1", "C:\test.ini")
sOrderIDIgnoreNew=sOrderIDIgnoreNew & ",1111111"
Call document.WritePrivateProfileString("OrderID", "OrderID",sOrderIDIgnoreNew, "C:\test.ini")
End Sub
执行test_bzj后,你会发现,文件中的字符长度被截断了。
应该是GetPrivateProfileString这个会截断字符