热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用于生成QR码的VBA代码,但是代码从哪里开始?

为了工作,我必须生成一些带有信息的QR码。因此,我在Internet上进行了检查,发现

为了工作,我必须生成一些带有信息的QR码。
因此,我在Internet上进行了检查,发现此“已完成”的QR码生成器:

https://github.com/JonasHeidelberg/barcode-vba-macro-only

这很好,而且效果很好。

在使用代码创建最终QR代码之前,我试图将其集成到我的VBA工作表中以进行数据处理。 (没什么复杂的)

是这样的:

用于生成QR码的VBA代码,但是代码从哪里开始?

4个单元格“ B4至B6”根据复选框将获得或未编码的条目数据,然后将结果写入列D中。
每个单元格的内容都堆叠在一个变量中,并将此变量提供给QR码生成器:

Public Function GenerateQRCode()
Dim CurrentWS As String
UserDataRange = "B6:B9" 'The cells in which the data to be encoded are stored
InputDataRange = "D6:D9" 'the cells with the encoded (or not) values
InputCell = "A4" 'the cell where the text to be encoded in the QR code has to be put
'encode the text depending on hte value of the cell behind the chek boxes
For Each cell In Range(UserDataRange)
If cell.Offset(0,1) = True Then
EncodedText = EncodeDecode.Base64EncodeString(cell.Value)
cell.Offset(0,2).Value = EncodedText
ElseIf cell.Offset(0,1) = False Then
cell.Offset(0,2).Value = cell.Value
End If
Next
Range(InputCell).ClearContents
DataToEncode = ""
'puts the text in the input line with dashes between each value
For Each cell In Range(InputDataRange)
pouet = Range(InputDataRange).Address
If DataToEncode = "" Then
DataToEncode = cell.Value & Chr(10)
Else
If cell.Address = Mid(Range(InputDataRange).Address,InStr(1,Range(InputDataRange).Address,":") + 1,_
Len(Range(InputDataRange).Address) - (InStr(1,":") - 1)) Then
DataToEncode = DataToEncode & cell.Value
Else
DataToEncode = DataToEncode & cell.Value & Chr(10)
End If
End If
Next
Range(InputCell).Value = DataToEncode
End Function

我担心的是,“无论我在整个工作簿中修改什么单元格,它都会使QR码生成器吃饱。”

我想在代码的开头给出一个条件,例如If cell A4 is modified,lunch the code,但我什至没有理解什么使代码开始以及如何收集数据...

我最好的猜测是这是代码的开头:

Public Function EncodeBarcode(ShIx As Integer,xAddr As String,_
code As String,pbctype%,Optional pgraficky%,_
Optional pparams%,Optional pzones%) As String
Dim s$,bctype%,graficky%,params%,zones%
Dim oo As Object
Call Init
If IsMissing(pzones) Then zOnes= 2 Else zOnes= pzones
If IsMissing(pparams) Then params = 0 Else params = pparams
If IsMissing(pgraficky) Then graficky = 1 Else graficky = pgraficky
If IsMissing(pbctype) Then bctype = 0 Else bctype = pbctype

但是它是如何开始的?哦

我认为必须紧跟Private Sub Worksheet_BeforeDoubleclick(ByVal Target As Range,cancel As Boolean)这样的行,然后控制“ target”的值...
在这里,对我来说,这看起来像是魔术:(

xAddr如何获取我单击的单元格的地址?再次魔术...

我希望仅在单击创建的按钮时执行代码。 (它会生成一些无限循环,而excel会关闭:/)
或者,如果不可能的话,我希望仅在修改单元格A4中的数据时执行它。

感谢您的帮助:)



这是因为CELL function函数是 volatile 函数,它会根据每次计算(不仅取决于它所依赖的单元格中的计算)进行重新计算。这意味着EncodeBarcode()也会进行每次计算(因为它在其参数中使用了CELL()函数)。


  

“波动函数”是一种导致每次Excel重新计算的单元格中的公式重新计算的函数。
  无论公式所依赖的先前数据和公式是否已更改,或者该公式是否还包含非易失性函数,都会发生这种情况。

如果您删除CELL()函数并将其替换为硬值

=EncodeBarcode(1;"B4";A4;51;1;0;2)

它不会在每次单元格更改时重新计算条形码。但是,只有在依赖于更改的单元格(此示例单元格为A4)时,它才会重新计算条形码。


推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
author-avatar
mobiledu2502869467
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有