学习Excel技术,关注微信公众号: excelperfect 在前面的几篇文章中,我们自定义的函数使用定义为Range的参数来从Excel工作表中获取数据,例如: Function VINTERPOLATEB...vArr = theParameter TestFunc = vArr End Function 在VBE中,在赋值给函数的返回值的语句行设置断点,如下图1所示 ?...因此,在通用目的的用户自定义函数中,希望使用Variant型参数,并且经常需要确定变体的类型以及上限和下限。...(theVariant)时要特别小心,这会对Range的覆盖范围进行强制转换,然后抛出结果值!...代码的图片版: ? 小结:在通用目的的用户自定义函数中,必须使用Variant类型的参数而不是Range类型。可以通过在处理变量之前确定变体包含的内容来有效地处理出现的问题。
对于一个引用类型而言,参数传递的时候,本质上是将一个引用对象对应内存地址传递过去,参数对象与实际对象指向同一个内存块。...第一个结果显然是不对的,因为三个int值相乘之后结果明显超出int长度范围,所以截断了。...第二个结果,前面两个int相乘,再与第三个long型运算,结果会自动转换为long型,但是根据运算顺序,前面2个int值运算的中间结果也是int类型,且长度超出范围被截断了,截断后的结果与最后一位long...上面的示例代码中,虽然最后finally里面也有执行流的关闭操作,但是try分支中,inputStream是在一个for循环里面被多次创建了,而最终finally分支中仅关闭了最后一个,之前的流都处于未关闭状态...全局变量中的集合类 全局类型的集合类,使用的时候需要注意两个关键点: 注意下并发场景的线程安全性; 注意下数据的最大范围、是否有数据淘汰机制,避免内存无限制增加,导致内存溢出。
大家好,上节的实例中引出变量的概念,变量是用于保存程序运行过程中的临时保存的数据和对象。根据保存的数据的不同的类型,变量也就有不同的类型。...1、字符串(String) 字符串是一个字符序列,类似于EXCEL中的文本,在VBA中字符串是包括在双引号内的(英文双引号),如果字符串双引号内长度为零,即“”就是空字符串。...如果范围溢出就用双精度浮点型,双精度浮点型的范围更大一些。 5、货币型(Currency) 货币型数据类型在货币计算与定点计算中很有用,因为对精度要求比较高。...10、对象型(Object) 利用set语句,声明为对象型的变量可以赋值为任何对象的引用。 ? 基本的VBA数据类型就以上这些,编写代码的过程中经常会用到。...在VBA中还可以使用Type语句来定义自己的数据类型,其格式如下: Type 数据类型名 数据类型元素 AS 数据类型 数据类型元素 AS 数据类型 ... ...
当被修改后Excel重新计算工作簿时,计算引擎将通过计算最近修改的公式开始,然后对剩余的公式使用最新的计算序列。...如果计算引擎找到一个公式,该公式依赖于已被处理/修改(或者是易失的)但尚未计算的单元格,则会将公式重新安排到计算链的末尾,以便可以在未计算的单元格之后重新计算。...(数组公式表达式等),并检查参数中的所有单元格是否包含公式和未计算任何单元格。...例如,如果所有参数都被定义为Double,那么Excel将在参数传递给用户定义函数之前尝试将参数强制转换为Double,如果参数实际引用了未计算的单元格,则不会调用用户定义函数。...条件格式公式中的用户定义函数 每次包含条件格式的屏幕部分被重新绘制或重新计算时,都会评估条件格式规则中的公式(可以通过在条件格式设置规则中使用的用户定义函数中使用Debug.Print语句来证明这一点)
引用我们客户的原话: *创建如下表,提示我:* *如果我将下面表中的varchar(200),修改成text(或blob):报错变为另一个:* *我们查阅了很多的资料,不确定The maximum row...(根据溢出页指针来计算字段长度,大于40的,溢出,只算40个字节)如果超过8126,InnoDB拒绝创建表 ● 表结构中根据Innodb的ROW_FORMAT的存储格式确定行内保留的字节数(20 VS...其实MySQL在计算字段长度的时候并不是按照字段的全部长度来记的。 列字段小于40个字节的都会按实际字节计算,如果大于20 * 2=40 字节就只会按40字节。...因为varchar(100) 大于了20*2那么就只会按40计算 总长度就是150*20*2=6000 < 8126 就会创建成功。...回到错误3 回归正题,第二个错误我们可以越过去,但是我们是不是能够真的插入150个100字符的字段列。 用附2的插入语句试一下就知道,错误3也会报错出来。
二、问题定位 缩小排查范围,确认引入问题的任务、函数、语句。 2.1 打印LOG 根据问题的现象,在抱有疑问的代码处增加LOG输出,以此来追踪程序执行流程以及关键变量的值,观察是否与预期相符。...具体方法为将与问题不相干的部分代码注释掉一半,看问题是否解决,未解决则注释另一半,如果解决则继续将注释范围缩小一半,以此类推逐渐缩小问题的范围。...优化问题 如上图程序,本意是等待irq中断之后不再执行foo()函数,但被编译器优化之后,实际运行过程中flg可能被装入寄存器并且每次都判断寄存器内的值而不重新从ram里读取flg的值,导致即使irq...此类问题需要仔细分析芯片的数据手册,严格满足芯片通信的时序要求。 3.1.2 动作异常 3.1.2.1 软件问题 设计问题 设计中存在错误或者疏漏,需要重新评审设计文档。...中断服务函数中未清除中断标志 中断服务函数退出前不正确清除中断标志,当程序执行从中断服务函数内退出后又会立刻进入中断服务函数,表现出程序的“假死”现象。
(第22行) 在 switch 语句中忘记了中断(第32行) 忘记了 buf 字符串的 null 终止,导致缓冲区溢出(第29行) 不释放 malloc 分配的缓冲区导致内存泄漏(第21行) 越界访问(...第17行) 未检查 switch 语句中的情况(第11行) 未检查stat 和 fopen 的返回值(第18行和第26行) 即使对于 C 编译器,这些错误也不应该很明显吗?...不,令人惊讶的是,即使在最新的GCC版本(撰写本文时为13.2)中,该代码也会在默认警告级别下编译无警告。 这不是一个非常不现实的例子吗? 绝对不是,这类错误在过去会导致严重的安全漏洞。...注意,s (&[i32])的类型不再提到数组长度。这允许我们对不同大小的切片执行计算。 切片总是从另一个对象借用。在本例中,a 必须保持“活动”(在作用域中)至少与我们的切片一样长。...() 相同的格式规范。 你可以通过 &和可选的范围选择从 String 中借用 &str 切片。
Excel 的几个基本常识 Excel 可以处理的数值有效位数最多为15位 公式中文本类型的常量必须写在半角双引号内 运算符包括算数运算符和比较运算符,其中比较运算符返回逻辑值 表示不等于 所有数据类型中...) Excel中只有两种通配符,分别是 ?...统计字符长度用LEN() 统计字节长度用LENB() 如果一个函数针对的是字符,那么再后面加上B往往就可以处理字节 Excel本身是不区分大小写的,可以使用函数EXACT来完成 查找字符所在的位置 使用...0/FALSE 表示精确匹配,excel 里的说明有问题 在平时的实际应用中,有一个问题曾经困扰了我很久。...单元格引用 查找的范围只能是一行或者一列 匹配类型有三种 -1 MATCH 查找大于或等于查找值的最小值,查找范围内的值必须按降序排列 1 小于或者等于查找值的最大值,查找范围内的值必须按照升序排列 0
01003 从列函数的参数消去 NULL 值。01004 字符串值在指定给具有较短长度的另一字符串数据类型时被截断。01005 SQLDA 中的条目数不够。01007 未授予特权。...01592 在引用 SOURCE 函数的 CREATE FUNCTION 语句中,或:输入参数的长度、精度或小数位大于源函数相应参数的长度、精度或小数位;或RETURNS 或 CAST FROM 参数的长度...10508 XQuery 表达式在已计算的构造函数中包括一个无效的名称表达式。10509 指定了不受支持的 XQuery 语言功能部件。...22007 检测到无效的日期时间格式;即指定了无效的字符串表示法或值。22008 发生日期时间字段溢出;例如,对日期或时间戳记算术运算的结果不在有效日期范围之内。2200G 大多数特定类型都不匹配。...、2、4、8、16、32、64、128、256 之一)09字符串太长10字符串函数中的长度或位置超出范围11浮点数的字符表示法无效38553 系统模式中的例程已因错误而终止。
溢出区域运算符,用于引用动态数组公式 中的整个范围。 引用文本而非数字引起的 #VALUE!#####=SUM (A2#) @ (@) 引用运算符,用于指示公式中的隐式交集。...溢出区域运算符,用于引用动态数组公式 中的整个范围。 引用文本而非数字引起的 #VALUE! ##### =SUM (A2#) @ (@)引用运算符,用于指示公式中的隐式交集。 ...计算次序 公式按特定顺序计算值。 Excel 中的公式始终以等号 (=) 开头。 等号Excel后的字符构成公式。 在此等号之后,可以使用由计算运算符 (操作数) 一系列元素。...Excel 按照公式中每个运算符的特定顺序从左到右计算公式。 运算符优先级 如果一个公式中有若干个运算符,Excel 将按下表中的次序进行计算。...如果一个公式中的若干个运算符具有相同的优先顺序 (例如,如果一个公式中既有乘号又有除号) ,则 Excel 将从左到右计算各运算符。
3、NET中如何实现深拷贝(deep copy)? 4、如何解决.net中的内存泄漏问题?用到过哪些检测工具? 5、内存泄漏和内存溢出的区别是什么? 6、请简述async函数的编译方式?....NET内存泄漏,更准确的说应该是对象超过生命周期而不能被GC回收。 常见的内存泄露有: a、静态引用;b、控件不使用后未销毁;c、调用非托管资源而未释放;d、事件注册后未解除注册,等。...(2) using的使用 using除了引用Dll的功用外,还可以限制对象的适用范围,当超出这个界限后对象自动释放,比如using语句的用途定义一个范围,将在此范围之外释放一个或多个对象。...CPS全称是Continuation Passing Style,在.NET中,它会自动编译为: (1)将所有引用的局部变量做成闭包,放到一个隐藏的状态机的类中; (2)将所有的await展开成一个状态号...以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
从目前来看,找出了缓冲区溢出问题也就找出了绝大部分的安全问题。缓冲区溢出的最根本原因就是未检查动态缓冲区边界,当源数据长度超出缓冲区长度时产生溢出。...要静态地分析出源程序代码中是否存在此类问题,首先就要计算出缓冲区长度。 ...针对缓冲区的不同类型,可有以下 4 种方法计算缓冲区长度: (1) 字符串常量:如“satecode scan”,其缓冲区长度为字符数+ 1。...对于前一种分配方法,需要考虑所分配的基类型,然后计算缓冲区长度。对于后一种分配方式,可直接通过表达式计算缓冲区大小; (4) 指针引用:通过引用指针或数组下标,从而引用预先设好的缓冲区的一部分。...当说明的缓冲区小于实际读入的字符串长度时,发生缓冲区溢出。分析处理方法:跟踪说明缓冲区的参数在程序中的出现,检查其缓冲区长度,并提示用户使用带有限制输入字符长度的格式化字符串。
如上功能描述看着很简单,但是实际上处理上传文件这一步是由讲究的,假如说后台上传文件太大,导致内存溢出,又或者读取文件太慢等其实都是一些隐性的问题。...MySQL JDBC 驱动在默认情况下会无视 executeBatch()语句,把我们期望批量执行的一组 sql 语句拆散,一条一条地发给 MySQL 数据库,批量插入实际上是单条插入,直接造成较低的性能...假如在批量写入过程中发生网络波动或者数据库宕机,我们其实只需要重新新建一条通知消息,然后重新上传包含用户 id 的文件即可。 因为上一条通知消息因为批量插入步骤没有全部完成,所以推送状态是失败。...、4 步骤是需要在一个事物里执行的,第 1 步其实可以放在事物外面来执行,以此缩小事物范围。...得生产者消费者模式,对上报的日志数据进行异步批量处理,在此场景下,通过生产者将数据缓存到内存队列中,然后再消费者中批量获取内存队列的日志数据保存入库,好处是简单易用,坏处是有内存溢出风险。
1、常量和变量 2、基本数据类型 3、运算符 一、常量与变量 1、常量 常量:其值不变的量 一旦赋值,其值就不可再改变; 就是说不能再重新赋值,很像shell中的只读变量...,python中不存在常量 字面常量:一个单独出现的量,未赋值给任何变量或常量。...一种在运行期间才去确定数据类型的语言 在任何时刻,只要需要,某个对象引用都可以重新引用一个不同的对象(可以用不同的数据类型) 赋值符号“=”用于将变量名与内存中的某对象绑定:如果对象事先存在...,就直接进行绑定;否则,则由“=”创建引用的对象 二、python的基本数据类型 1、数值类型 int:整型,整数 python中int原则上来说无限大,没有溢出;没有长度限制,只受制于内存的大小... python2中区分有int和long(长整型),python3中没有区分 float:浮点型,小数 float有长度限制,会溢出,会损失精度 python中没有double
if-else语句来实现,事实上也是如此,当情况的数量少于4个时,switch语句将翻译为if-else语句,当超过4个情况时,并且值的范围跨度比较小时就会使用跳转表 过程 运行时栈 栈的作用:过程参数...平均访问时间:若tc表示命中时的Cache访问时间,tm表示未命中时的主存访问时间,1-h表示未命中率,则Cache/主存系统的平均访问时间ta为 ta= h tc + (1 - h) tm 某计算机系统的内存储器由...汇编器将汇编代码逐行翻译成与特定处理器相关的二进制指令,这些指令可以被计算机直接执行。每个汇编语句通常对应着一条机器指令,包括操作码和操作数等。...符号解析 作用 将每个符号引用与它输入的可重定位目标文件的符号表中的一个确定的符号定义关联起来。 强符号 函数和已经初始化的全局变量。 弱符号 未初始化的全局变量。 规则 不允许存在同名强符号。...数据结构: 维护三个动态变化的集合E、U和D E:可重定位目标文件集合,被引用的目标文件将被拷贝到可执行文件中; U:随着链接的展开而发现的未解析的符号集合,成功链接后最终该集合为空; D:所有输入文件中已解析的符号集合
1、数组的长度是固定的,与vector类型不同,数组不提供push_back或者其他的操作在数组中添加新元素。...3、很多运行时错误都源于使用了未初始化的指针。 对大多数的编译器来说,如果使用未初始化的指针,会将指针中存放的不确定值视为地址,然后操纵该内存地址中存放的位内容。...使用未初始化的指针相当于操纵这个不确定地址中存储的基础数据。因此,在对未初始化的指针进行解引用时,通常会导致程序崩溃。 ...,则计算的结果不可预料。...:数组长度固定不变,在编译时必须知道其长度,数组只在定义他的块语句中存在。
所以今天我们得回头重新思考,编程中那些耳熟能详却又似懂非懂的基础概念,搞清楚底层逻辑。而且这些概念,对我们后面学习和理解 Rust 中的知识点非常重要,之后,我们也会根据需要再穿插深入讲解。...当“hello world” .to_string() 的时候,在堆上,一块新的内存被分配出来,并吧 “hello world” 逐个字节拷贝过去。...比如上面的代码,“Lindsey” 和 “Rosie” 的长度不一样,say_name() 函数只有在运行的时候,才知道参数的具体的长度。...还有个要点: 假如堆内存被多个线程的调用栈引用,改动内存的时候要特别注意,需要加锁来独占访问,避免潜在问题, 线程很常见的问题比如: 一个线程在遍历List ,而另外一个线程在释放List 中的某一项,...,此时去解引用就是去访问了一个不确定的地址,所以结果是不可知的。)
所有数值计算错误的基类 \ FloatingPointError 浮点计算错误 这个错误由导致错误的浮点操作产生,前提是已经打开了浮点异常控制(fpectl),启用fpectl时,要求编译解释器提供...LookupError 无效数据查询的基类 \ IndexError 序列中没有此索引(index) 如果索引超出范围,就会产生IndexError KeyError 映射中没有这个键 如果没有找到一个值作为字典的键...,会产生异常 MemoryError 内存溢出错误(对于Python 解释器不是致命的) 如果一个程序用尽了所有内存,而且可以恢复,会产生 NameError 未声明/初始化对象 (没有属性) 如果代码引用了一个名字...,而当前作用域中不存在这个名字,会产生 UnboundLocalError 访问未初始化的本地变量 一种NameError,特别针对局部变量名 ReferenceError 弱引用(Weak reference...运行检测到的错误被称为异常。 捕捉异常可以使用try/except语句。 try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。
在此示例中,r是一个变量,可以包含对Range对象的引用,但是尚未初始化为引用实际单元格区域,因此第二行会导致错误。...只要数组索引可能超出范围,在尝试给数组赋值或从数组中读取数据之前,使用LBound和UBound检查索引值。 总是验证用户输入的数据。错误的常见原因是用户输入不正确的数据,例如在需要数字时输入字符串。...执行数学计算的过程应注意溢出和零除错误,但是该过程可以忽略与文件相关的错误,因为在该过程执行期间它们不会发生。 在VBA程序中,过程通常会调用其他过程。...忽略错误 Excel的SpecialCells方法使你能够获得对满足特定条件的区域内的单元格的引用,例如包含公式的单元格或包含批注的单元格。如果找不到匹配的单元格,则会产生错误。...注:本文是在知识星球App的完美Excel社群中发表的Excel VBA编程系列文章中的一篇,翻译整理自《Excel Programming Weekend Crash Course》。
同样,如果用于某些数值计算的代码产生不正确的结果,则也将其视为bug。由于实际上存在无限数量的潜在bug,因此无法列出或描述Excel程序中可能出现的错误。...避免Bugs 减少程序bugs的最重要步骤是始终使用OptionExplicit语句。该语句生效时,必须显式声明程序中的每个变量。如果尝试使用未声明的变量,则VBA会显示一条错误消息。...表达式的当前值,如果程序未执行或变量超出范围,则为 类型。表达式的数据类型(如果有) 上下文。在其中计算表达式的上下文(工程的一部分) ?...VBA的监视可让你在程序执行期间跟踪程序变量的值。 自我测评 1.运行时错误与程序错误有何不同? 2.如何在代码中设置断点? 3.逐语句执行命令和逐过程执行命令有什么区别?...注:本文是在知识星球App的完美Excel社群中发表的Excel VBA编程系列文章中的一篇,这些文章正陆续更新中,近期会全部更新完成。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
领取专属 10元无门槛券
手把手带您无忧上云