我试图在Mac上运行的Excel工作表中创建并显示一系列QR码(200+)。 Patratacus在Generating 2D (PDF417 or QR) barcodes using Excel VBA上发现的第一个解决方案需要很长时间来运行如此多的代码,并且因为QR码由多种形状组成,所以屏幕刷新变得非常慢,一张纸上有200多个QR码。
所以,我已经在Generating 2D (PDF417 or QR) barcodes using Excel VBA使用@Luiz解决方案在PC上运行了代码,但遗憾的是它似乎无法在Mac上运行。
使用代码:
sURL = "https://api.qrserver.com/v1/create-qr-code/?" + "size=" + Trim(Str(size)) + "x" + Trim(Str(size)) + "&color=" + color + "&bgcolor=" + bgcolor + "&data=" + data
Debug.Print sURL
Set pic = ActiveSheet.Pictures.Insert(sURL + sParameters)
SURL + sParameters - 似乎从API https://api.qrserver.com/v1/create-qr-code/?
返回图像的原始数据。所以我能够获得一个Mac shell脚本来返回我认为使用的相同原始数据:
sResult = execShell(= "curl --get -d """ & "size=" + Trim(Str(size)) + "x" + Trim(Str(size)) + "&color=" + color + "&bgcolor=" + bgcolor + "&data=" + data & """" & " " & "https://api.qrserver.com/v1/create-qr-code/?")
但是,如果将返回的字符串插入:
ActiveSheet.Pictures.Insert()
在mac上,它似乎也无法正常工作。所以我的猜测是在Mac上ActiveSheet.Pictures.Insert()无法读取原始图像数据,只能读取图片文件的路径和文件名。
所以我认为我们的选择是:
使用API返回的原始数据或
找到一种方法将API返回的原始数据保存为Macs文件系统上的图片文件,然后使用excels ActiveSheet.Pictures.Insert()代码打开该文件。
以下是API文档页面的链接:http://goqr.me/api/doc/create-qr-code/
我希望我上面写的内容有道理,因为我可能没有正确的所有术语。我对使用API等感到很陌生。