首页
学习
活动
专区
圈层
工具
发布

最佳编码实践:搞砸代码的10种方法

,但正如作者所说,“虽然其中一部分只适用于VBA或某种IDE,但大多数都是通用的”,希望大家触类旁通,将这些方法实践到自己的开发工作中。   ...2、goto是一个有效的语句,我经常使用它   Goto是一个有效的语句,但使用不当会产生难以驾驭的代码,而且会隐藏错误和拙劣的程序设计,当你不能想出一个更好的策略时,不要轻易使用goto语句,当你真正需要一个简单的重定向程序流时可以使用它...,每次敲下goto时都问一下自己,是否有其它方法来处理这个重定向?...◆ 在Access中,遇到Null时,Nz()返回一个值,而不是Null。   ◆ 如果你需要处理Null变量,请使用Var数据类型,它是唯一可以存储Null的数据类型。...8、我是唯一一个使用应用程序的人,因此我在程序中嵌入了密码   密码和用户id值永远都不应该嵌入到代码中,你可能是唯一被授权使用该应用程序的人,但这并不意味着就可以直接将密码嵌入到程序中,相反,不管是谁要使用这个程序

2.7K40

启科QuSaaS真随机数解决方案与Amazon Braket结合实践

2、真随机数和伪随机数 在计算中,硬件随机数生成器(HRNG)或真随机数生成器是一种从物理过程而不是通过算法生成随机数的设备。...虽然可以使用硬件随机数生成器生成更接近真实随机的序列,但伪随机数生成器在实际中对其生成数字的速度和再现性非常重要。...• 第二种方法使用计算算法,可以产生长序列的明显随机结果,这些结果实际上完全由一个较短的初始值(称为种子值或密钥)决定。结果,如果种子值已知,则可以再现整个看似随机的序列。...3、量子随机数 现在常用的依靠计算机模拟产生的伪随机数,或者从某些经典物理噪声(如热噪声,电噪声等)中提取随机数,实际上并不是正真正的随机数,因为从理论上讲,经典物理过程在考虑到所有变量的情况下是可以被模拟的...那么是否存在真正的随机数呢,随着量子力学的发展,通过量子系统产生随机数已经成为可能。 量子物理过程所产生的随机性是完全真随机的,比如量子态的坍缩过程。考虑处于叠加状态的一个量子比特: 。

82020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    暂停或延迟Excel VBA运行的3种方法

    虽然Excel VBA没有用于暂停代码运行的内置功能,但可以使用Application.Wait或Windows API的Sleep函数等方法来引入延迟。...下面是需要使用VBA暂停策略的情况: 1.暂停代码运行可以让复杂的计算或数据操作有时间完成,从而确保结果准确可靠。...2.延迟代码运行使得能够与外部事件(如数据库更新或web服务响应)进行协调,从而确保无缝集成和实时数据处理。 3.VBA中的暂停使得有时间在继续操作之前查看信息或做出决定。...4.在批处理操作之间延迟代码运行可以有效地处理大型数据集或对多个对象执行操作,同时控制资源消耗 5.在VBA代码中引入延迟有助于创建一个更可控的操作序列,允许脚本逐步执行或以特定的间隔执行,从而增强整个脚本代码的逻辑和精确度...如果在VBA代码脚本暂停时需要在Excel工作表中输入数据,则应尝试基于循环的方法。它可以暂停代码的执行,直到在Excel中重组或输入数据,然后继续完成代码。

    7.3K30

    Python 随机(Random)模块的不可预测之美

    计算机可以用随机数模拟现实世界中的各种随机概率问题,没有随机生成器的编程语言不是“好语言”。 什么是真随机数? 现实世界中的随机数:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等。...1.2 随机数种子 生成伪随机数时,需要设置随机种子,种子作用就是在随机数的生成算法里注入一个动态变化量。 比如说使用系统的当前时间做随机种子,随机算法就可以在时间变化的基础上生成随机性更大的随机数。...如在 UNIX 系统中,将系统时间、连入WIFI、甚至按下的键盘次数都量化为了seed。 参考指标越多,伪随机数就越接近真正的随机生成。 2....有关安全性或加密用途,可使用 Python 中的 secrets 模块。...总结 随机数可以很完美的模拟真实世界里的各种概率或随机事件。python 的随机数生成除了可以使用 random 模块外,还可以使用 numpy 库中所提供的方法。

    1.1K30

    尝试:Script Lab,快速 O365 开发工具SL01)

    评论区的网址如下:https://aka.ms/getscriptlab 一些较经典的评如,摘录并翻译如下: 高级用户是否真正适应HTML,CSS和JavaScript?...为什么不使用类似于PowerApps的简单公式语言来构建Microsoft Office系列产品的加载项而不是Script Lab? 比VBA好多了 这是VBA的超酷替代品,也可以在线使用。...我喜欢它,因为我可以快速测试脚本 快速的o365开发工具 这是一个很棒的工具。与客户进行快速原型制作成为现实。我很乐意看到这个家庭的前景和其他产品。...工作之余,有创新想法的员工可以在公司内部招募成员、组建团队,将其变为现实。日前,微软向外展示了一系列员工在工作之余开发的APP,这些“车库极客”们彰显了微软员工基因中的创新血液。...最后,我们有一个工具可以轻松尝试 Office JavaScript API,无论是感兴趣的 Excel 高级用户还是专业开发人员原型化插件!

    1.7K50

    尝试:Script Lab,快速 O365 开发工具SL01)

    一些较经典的评如,摘录并翻译如下: 高级用户是否真正适应HTML,CSS和JavaScript?...为什么不使用类似于PowerApps的简单公式语言来构建Microsoft Office系列产品的加载项而不是Script Lab? 比VBA好多了 这是VBA的超酷替代品,也可以在线使用。...我喜欢它,因为我可以快速测试脚本 快速的o365开发工具 这是一个很棒的工具。与客户进行快速原型制作成为现实。我很乐意看到这个家庭的前景和其他产品。...日前,微软向外展示了一系列员工在工作之余开发的APP,这些“车库极客”们彰显了微软员工基因中的创新血液。...最后,我们有一个工具可以轻松尝试 Office JavaScript API,无论是感兴趣的 Excel 高级用户还是专业开发人员原型化插件!

    2.5K20

    VBA: 为worksheet 设置密码和解除密码

    文章背景: 在工作中,有时候需要给工作表的的内容设置保护,避免数据被误修改,同时又希望可以通过宏命令,实现数据处理的自动化。...此时,我们可以在宏命令中添加相应的代码:在程序执行前,解除密码;在程序结束后,设置密码。...1 判断工作表是否处于保护状态 ProtectContents是工作表的属性,用于判断工作簿中的某张表是否处于保护状态。...End If 2 保护和解除保护工作表 2.1 保护工作表 在VBA中可以使用Worksheet对象的Protect方法保护工作表。...这样,在保护工作表期间,那些锁定单元格得到保护,其他未锁定的单元格依然可以编辑。 2.2 解除保护工作表 在VBA中可以使用Worksheet对象的Unprotect方法解除保护工作表。

    3.8K20

    当Python遇到Excel后,将开启你的认知虫洞

    在上个世界末推出的Excel5.0(那时还没有office这个产品套件)就已经支持VBA了,那可是在Win32下(一种基于dos的shell,并不属于真正的操作系统)。...CreateObject函数),然后就可以任意调用VBA的API了,我比较喜欢这种方式。...也就是说,主要的操作界面是Excel,在Excel中调用或访问其他系统。例如,很多年前我做过一个基于Excel的报表系统。该系统分别使用Delphi和Excel实现。...也就是通过集成或其他方式,一种技术可以直接或间接使用另外一种技术的全部或大部分资源。 6....等),UnityMarvel内置了一种虚拟数据库,可以直接用虚拟数据库开发,在发布时,会要求选择使用的数据库,例如,选择MySQL或SQL Server。

    4.5K31

    11.反恶意软件扫描接口 (AMSI)

    AMSI支持允许文件和内存或流扫描、内容源 URL/IP 信誉检查和其他技术的调用结构。 AMSI 还支持会话的概念,以便反恶意软件供应商可以关联不同的扫描请求。...当脚本准备好提供给脚本引擎时,应用程序可以调用 Windows AMSI API 来请求对内容进行扫描。这样,就可以在决定继续执行之前安全地确定脚本是否是恶意的。 即使脚本是在运行时生成的,也是如此。...脚本(恶意或其他)可能会经过多次去混淆。但您最终需要为脚本引擎提供简单、未混淆的代码。这就是调用 AMSI API 的地方。...Office VBA + AMSI 当然amsi也可以检测vba和Java script 在实战中,使用宏攻击(钓鱼)也是我们常用的手法,所以我们要知道amsi对宏文件的检测流程 在微软文档中我们可以看到...通过阅读理解微软文档我们可以知道amsi对宏的检测查杀流程: 1.word等等钓鱼文件加载宏 2.VBA宏运行时,运行时会有一个循环的缓冲区中记录数据和参数调用Win32,COM, VBA等等api的情况

    5.8K20

    以太坊go-ethereum常见问题汇总

    可以在Mist Ethereum钱包GUI客户端中轻松创建钱包合同。 (7) 是否只能从你下载客户端的计算机访问密钥文件? 不是的,建议你将密钥文件导出或移动,但要牢记你备份的密钥文件存储的位置。...执行的gas必须由提交执行请求的地址提供。 (11)一个合约是否可以调用另外一个合约? 可以的,参考合约之间的交互。 (12) 交易是否可以脱机签名,然后在其他在线设备上提交?...如果从帐户发送了3个交易,则帐户随机数将是3) (15)以太坊合约可以使用第三方API来收集数据吗? 以太坊合约不能以这种方式从外部信息来源提取数据。...当然,你也可以在本地加密数据,然后将其广播到网络。 (17)可以在Ethereum网络上存储秘密或密码吗? 所有关于以太坊的数据都是公开的。 在以太坊合同中存储秘密或密码,而不被所有人看到是不可能的。...正在尝试使用代码混淆或其他技术来达到此目的。 (18) 以太坊如何对抗矿池的集中? 基于以太坊PoW的共识算法有两种主要方法来对抗挖掘集中。

    1.5K20

    Excel催化剂开源第45波-按原图大小导出图片

    从Excel中导出图片,是一个很常规的需求,也有一些久旧不衰的界面操作法小技巧从OpenXml文件中批量导出,在VBA开发中,也会使用Chart对象的背景图的技巧来导出。...总体来说,和真正想要的效果还是有差距,特别是这样的方式导出的图片像素会低。 在VSTO开发中,有更好的方式,此篇给大家一一分享。...原理是使用剪切板将图片复制到内存剪切板中,再由剪切板转换为图片,在复制过程中,我们需要考虑原始的图片在Excel上显示是已经缩放过的,需要将其放大为原始尺寸再复制。...方法,可以将图片放大,特别是图形Shape类型时,可以按原始图来放大,其他的按实际显示的大小来放大。...直接大量的现成方法简单调用,无需像VBA那般苦苦地挣扎着,调用各种古老方法或系统API等来扩展原生VBA对象的不足。

    1.4K30

    ExcelVBA与python产生不重复随机数

    =======ExcelVBA===== VBA编程实现不重复随机数输出。VBA里的随机函数是RND,在工作表中随机函数是RAND,一字之差,可要记好了。...为了得到不同的序列,可以用不同的负数,也可以在rnd -1后面执行Randomize number。注意,要得到相同的序列,两次Randomize后面的number必须相同。...注意:若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。...===== Python产生一个数值范围内的不重复的随机数,可以使用random模块中的random.sample函数,其用法如下: >>>import random >>>random.sample...(population,k) 函数从序列或集合population中返回一个长度为k的随机数列表,并且列表中的随机数元素之间是不重复的,如: 【方法一】 >>>a =[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

    2.2K30

    VBA: 隐藏模块中出现编译错误:的解决对策

    因为 VBA 版本 6 和更早版本没有用于指针或句柄的特定数据类型,所以,它使用 Long 数据类型(一种 32 位 4 字节的数据类型)来引用指针和句柄。...只有在 64 位版本的 Microsoft Office 中运行 VBA 代码时,才需要修改 VBA 代码。...此外,还必须更新任何包含指针或句柄以及 64 位整数的用户定义类型 (UDT),使之使用 64 位数据类型,同时,必须验证所有变量赋值是否正确,以防止发生类型不匹配错误。...下面这种方法可以避开VBA工程的密码验证。具体步骤如下: (1)新建一个工作簿(xlsm格式)(记为工具文件),在工作簿内新建一个模块。将以下代码复制到模块内。...(ByVal pFunc, 6, &H40, OriginProtect) 0 Then '标准api hook过程之二: 判断是否已经hook,看看API的第一个字节是否为&H68

    17.7K11

    VBA变量5年踩坑吐血精华总结

    是的,那么我们用VBA如何实现呢? image.png 我们观察发现:行号是变化的,而且是「正向递增加1」的规律。 在VBA中,我们将这种根据需要能够随时变化的称为变量。...我们用x代替,那么程序就变为: image.png 我们又知道,变量x的变化是依据「单元格B2」内容的变化而变化,也就是: image.png [备注] 在VBA中,「=」专业术语是「赋值」 即...但是这样操作,有以下几点缺点: 1)程序写起来特别的长,非常容易出错; 2)代码不易维护,修改难度大; 3)VBA从内存中读取变量的时间要远低于读取单元格的时间; 因此,可以总结使用变量有以下好处(拿小本本记好...但是,大家需要注意给VBA中变量取名字 需要注意以下几点: (1)尽量使用有意义的名字,且尽量使用英文或拼音命名 一方面,变量命名有意义就是大家可以读懂,知道变量表达的意义,增强代码的可读性。...(2)变量命名有讲究,需要注意以下四点: a.尽量使用有意义的名字,且尽量使用英文或拼音命名 b.不要使用特殊字符 c.不能和系统保留字(关键字)一致 d.VBA大小写不敏感 image.png

    2.3K00

    Excel编程周末速成班第24课:调试和发布应用程序

    VBA的调试工具旨在跟踪这两种bugs的原因。 断点 在VBA编辑器中,可以在任何代码行上设置断点。当执行到达该行代码时,VBA进入中断模式,这使你可以执行各种调试任务(稍后将对此进行解释)。...当VBA处于中断模式时,你可以执行其他调试操作,如以下各节所述。当VBA在断点处停止时,该行以黄色突出显示。 VBA在执行包含断点的行之前停止。...VBA可以在程序调试期间监视任何变量或表达式的值。监视表达式可以是任何VBA表达式,例如程序变量、对象属性或函数调用。通过设置监视,你可以关注变量或属性的值以查看其是否以及何时更改。...可以使用多种方法来使用监视表达式: 可以监视其值。VisualBasic在“监视”窗口中显示表达式值(定义监视表达式时,此窗口会自动打开)。每当程序进入中断模式时,显示的值都会更新。...大多数bugs是由于变量取不正确的值和/或程序执行分支不正确造成的。 可以在程序中的任何位置设置断点,以强制程序在该点暂停。 当程序在中断模式下暂停时,可以单步执行代码以查找错误。

    8.5K10

    Office文件打开密码测试工具

    这还是可以接受的。 同时因为hash函数里还加了点“盐”(salt随机数),所以想事先将密码的hash值计算好存储起来,以此来节省hash的时间也是不可能的!...2 使用VBA测试密码 因为VBA里提供了Workbooks.Open方法,是允许带密码参数的,所以使用这个也可以做个简单的密码测试工具: Set wk = Workbooks.Open(Filename...工具获取密码的方式目前提供了2种: 一种是输入元素进行排列组合获取:元素按空格隔开,可以是多个字符的元素,比如[0 1 aa xiong 2],这表示5个元素;排列组合选择的数量可以输入多个,比如可能是元素中的...3个或者4个的排列组合,输入[3 4] 一种是直接选择保存了密码的文本文件按行读取 工具使用的是go语言编写,UI使用的是fyne,理论上应该是可以跨平台,但我没有其他平台电脑,没做相关测试,如果有其他平台需要的可以联系...使用过程中发现bug也欢迎随时联系我。 获取方式: 在微信公众号回复oct获取

    1.1K20

    「数据ETL」从数据民工到数据白领蜕变之旅(七)-将Excel(PowerQuery+VBA)的能力嫁接到SSIS中

    使用场景 在PowerQuery的数据处理中,有相当多的一些功能使用起来非常方便,对应于企业级的SSIS,反而缺少了这些的灵活性,真正要完全使用SSIS来实现,非常繁琐。...dotNET与VBA在Excel对象模型上的差别 在dotNET脚本中,引用Excel对象模型,理论上可以替代VBA的脚本,但本轮测试发现,在dotNET上的Excel对象模型,貌似未能有最全的开放给VBA...具体的M代码如下,定义了一个参数变量filePath,用于在VBA上调用方法来赋值。 因dotNET的接口上缺少此方法,只能在VBA上定义好再调用来赋值。...具体实现 整个流程如下所示,在测试过程中同样发现,当一个Excel的进程多次被使用时,会存在报错现象,所以索性牺牲一点点性能,每次循环都将Excel的进程给清除,并在一开始时也清除所有Excel进程,保证模板文件和其他数据源没有被打开...使用Application.Run方法来调用模板文件里的VBA代码,替换掉PowerQuery里的参数filePath的值。

    6.5K20

    C语言函数大全--r 开头的函数

    注意: raise() 函数只能向当前进程发送信号,不能向其他进程发送信号。如果要向其他进程发送信号,可以使用 kill() 函数。...如果要生成不同的随机数序列,可以使用 srand() 函数提供的种子来初始化随机数发生器。由于 rand() 函数只能生成伪随机数,不能保证其真正的随机性。...因此,在需要高度安全性的应用程序中,建议使用更加安全的随机数生成器,如 /dev/random 和 /dev/urandom 等系统提供的硬件随机数生成器。...注意: 在使用 realloc() 函数时,应该始终检查返回值,以确保分配内存空间成功,避免因内存不足或其他原因导致程序崩溃。...BGI 驱动程序主要用于支持 Borland C++ 等 IDE 环境下的图形绘制和显示操作,它们通常存储在一个单独的库文件中,例如 graphics.h 头文件需要使用的 BGI driver 位于

    34511

    用人脑生成等概率随机数,困扰人类30万年的问题解决了 | 附“源代码”

    怎么才能把人类随机函数变成真正的随机函数,要做的就是把概率分布大于10%的数挪到概率小于10%的数上。 你可以想象成切碎这些长条并重新排列,让它们都一样高: ?...举一个极端的例子,假设我们将每个长条都“切割”成无限小的块,然后就可以像乐高一样使用这些块来建立任何形状的概率分布。...xi,i表示自身不调整的部分。 最后我们希望所有随机数的概率都是0.1,所以其他数字调整进j的比例之和应该满足: ?...但是这28%、20%的比例如何获得,最初的随机分布表就可以啊。 本来就有28%的人选择7,如果我们获得了一个7,在问第二个人,如果也得到一个7,我们就把第一个7强制转换成1。...,你应该能得到一个接近平均的从1到10的随机数发生器,前提是你得有8500个人。

    87220

    进击的恶意文档之 VBA 进阶之旅

    下面我就以威胁分析员的角度来介绍几种技术 VBA stomping VBA 在 Office 文档中可以以下面三种形式存在 1、源代码: 宏模块的原始源代码被压缩,并存储在模块流的末尾。...Pcodedmp 精准的识别了真正的宏代码,忽略了伪造的 VBA 通过 VBA stomping 原理可知,真正的代码存为了 P-Code,所以 olevba 输出的结果中反编译形式的 VBA 即为真正的代码...可以通过 Olevba 判断是否使用了 VBA stomping,如果是则直接使用 Pcodedmp 获取 P-Code 代码。...2007(x86) 8800 2010(x86) 9700 2013(x86) A300 2016(x86) AF00 在 VBA 编辑器中隐藏宏 可以在 VBA 编辑器中隐藏真正的宏,只需要修改 PROJECT...”替换为“txt” 二、很多诱饵文档喜欢在 VBA 中启动脚本程序执行 ps 或者从网络上下载一段 shellcode 或恶意程序等等,这样非常容易被杀软的行为拦截拦住,同时沙箱可以根据进程链和流量判定该

    5.7K30
    领券