标签:VBA 这是一段非常好的代码,来自ozgrid.com,可以使用它来快速排序VBA中的数组。 代码如下: '对一维或二维数组排序....'二维数组可以通过传递适当的列编号作为sortKeys参数来指定其排序键. '函数传递一个引用,因此将对原始数组进行变异....matches s = Left(s, v.FirstIndex + padOffset) & Application.Rept("0", (padLen - Len(v))) & VBA.mid...sortCols Erase arr1 Erase arr2 Erase tmp On Error GoTo 0 sortArray = arr End Function 下面是一个如何处理包含数字的字符串排序的小演示...(可以使用自动筛选来查看默认排序与排序代码的结果对比): Sub smartNumberSort() Dim a, i& ReDim a(1 To 500) a(1) = "Key" For i
这几天在学习ExtJs + Wcf的过程中,发现一个问题,如果Class中有成员的类型为DateTime,即使我们正常标识了[DataMember],序列化成JSON时,会生成一种特有的格式: .....这种格式ExtJs并不识别,导致最终的组件,比如Grid上无法正常显示,解决办法有二个: 1.将Class的成员,手动改成String类型,不过个人不推荐这种方式,毕竟将数据类型都改了,相应的服务端很多地方都可能会做相关修改...2.用JS在前台调用时,用代码处理返回的JSON字符串格式,使之符合ExtJs的规范(这个方法是从博客园"小庄"那里学来的,呵) Ext.onReady(function() { //这个函数演示了怎样把服务器端的...DateTime类型转为Javascript的日期 function setAddTime(value, p, record) { var jsondate...设置Grid的Columns时,类似如下处理: var grid = new Ext.grid.GridPanel({ store: store,
excelperfect 标签:VBA 这是在www.wimgielis.com中看到的一段代码,可以在工作表中自动添加一个矩形,用户可以指定矩形的大小和填充的颜色,以及指定相关联的宏。...VBA代码如下: Sub Add_Macro_Rectangle() Dim ws As Worksheet Dim sh...String On Error Resume Next Set ws = ActiveSheet sDimensions = Trim(Application.InputBox("请输入形状的大小...(行 x 列)", "形状大小", "3x3", , , , , 2)) iColor = Trim(Application.InputBox("请输入形状的颜色: 1 =蓝色, 2 =绿色, 3...(1) If Len(s) = 0 Then s = .OnAction sText = Trim(Application.InputBox("请输入形状中的文本", "形状文本", s
标签:VBA,快捷菜单 弹出菜单(有时也称为上下文菜单或快捷菜单)是用户界面(UI)中的菜单,提供了一组命令选项,通过某些用户操作(如鼠标右键单击)在应用程序的当前状态或上下文中可用。...由于在2007 MicrosoftOffice系统中,Microsoft用功能区UI取代了命令栏菜单结构,这造成了创建在不同版本的MicrosoftOffice中工作的菜单的技术会有所不同。...在VBE中,单击“插入——模块”,在标准模块中的代码如下: Public Const Mname As String ="MyPopUpMenu" Sub DeletePopUpMenu() '...End Sub 回到Excel界面,按Alt+F8键,调出“宏”对话框,选择“CreateDisplayPopUpMenu”宏,单击“选项”按钮,在“宏选项”对话框中的“快捷键”中输入字母m,如下图1所示...图1 这样,在Excel工作表中,按Ctrl+m组合键,会出现如下图2所示的弹出菜单。 图2 当单击菜单中的按钮时,会弹出一个信息框,如下图3所示。
本文将浅析GadgetToJScript的反序列化原理与在VBA中的利用。...而在VBA中的被检测的列表已有大佬整理了出来: https://github.com/synacktiv/AMSI-Bypass ? ? 当然,DDE与excel 4.0是不受amsi所保护的。...而GadgetToJScript本质是反序列化的利用,下面是一个基础的反序列化代码 代码如下: using System; using System.Collections.Generic; using...其代码结构解释如下: ? 即BinaryFormatter的反序列化加载。...但这已不是宏需要考虑的了,而是在powershell中amsi patch的问题了,在前方的代码中加入amsi patch,即可然过wdf对ps的检查,得到Cs的beacon。 ?
在 thisworkbook 中添加如下代码段: Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target...ActiveSheet.UsedRange.Interior.ColorIndex = 0 Target.Interior.ColorIndex = 6 End If End Sub 在单元格里回车...dict.Items For i = 0 to dict.count - 1 key = k(i) value = v(i) Next ' 清空 dict.RemoveAll 参考:Excel vba...{ Do | For | Function | Property | Select | Sub | Try | While } 参见 Exit Statement (Visual Basic) 参考 VBA...Converting Data Types excel vba判断文件是否存在
文件操作 引用打开的工作簿 使用索引号(从 1 开始) Workbooks(1) 使用工作簿名称 Workbooks("1.xlsx") 创建一个 EXCEL 工作簿对象 Dim wd As Excel.Application...ThisWorkBook.Path & "/old.xlsx" newfile = ThisWorkBook.Path & "/new.xlsx" FileCopy oldfile, newfile 删除文件夹下的所有文件...在 thisworkbook 中添加如下代码段: Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target...ActiveSheet.UsedRange.Interior.ColorIndex = 0 Target.Interior.ColorIndex = 6 End If End Sub 在单元格里回车...String arr() = Split(ws.Cells(a, b).Value, "-") alen = UBound(arr) - LBound(arr) + 1 判断单元格是否为空 判断单元格的
Protobuf是google开发的一个序列化和反序列化的协议库,我们可以自己设计传递数据的格式,通过.proto文件定义我们的要传递的数据格式。...(这个例子取自Yu的一篇博文) 也想过把他俩放到同一个目录…然后bar.proto中import的代码就要修改,虽然这样可以,但显然是不适合大型的项目。...另外,不同目录内的.cc文件会引用相应目录生成的.pb.h文件,我们需要生成的.pb.cc和.pb.h在原始的目录中,这样才可以正常引用,要不然需要修改其他源代码的include地址,比较麻烦。...CLion中Cmake来编译proto生成的.pb.cc和.pb.h不在原始目录,而是集中在cmake-build-debug(release)中,我们额外需要将其中生成的.pb.cc和.pb.h文件移动到原始地址...正确修改cmake 对于这种情况,比较合适的做法是直接使用命令进行生成。
实现方式统一使用: Logback框架 打日志的正确方式 什么时候应该打日志 当你遇到问题的时候,只能通过debug功能来确定问题,你应该考虑打日志,良好的系统,是可以通过日志进行问题定为的。...当你碰到if…else 或者 switch这样的分支时,要在分支的首行打印日志,用来确定进入了哪个分支 经常以功能为核心进行开发,你应该在提交代码前,可以确定通过日志可以看到整个流程 基本格式 必须使用参数化信息的方式...: 基本概念 系统运行信息 Service方法中对于系统/业务状态的变更 主要逻辑中的分步骤 外部接口部分 客户端请求参数(REST/WS) 调用第三方时的调用参数和调用结果 说明 并不是所有的service...,需要进行日志打点,以及埋点记录,比如电商系统中的下订单逻辑,以及OrderAction操作(业务状态变更)。...,业务代码中,不要使用.
花下猫语:在 Python 中,不同类型的数字可以直接做算术运算,并不需要作显式的类型转换。...但是,它的“隐式类型转换”可能跟其它语言不同,因为 Python 中的数字是一种特殊的对象,派生自同一个抽象基类。...在上一篇文章 中,我们讨论到了 Python 数字的运算,然后我想探究“Python 的数字对象到底是什么”的话题,所以就翻译了这篇 PEP,希望对你也有所帮助。 ?...在 2.6 版本中,math.floor、math.ceil 和 round 将继续返回浮点数。 float 的 int() 转换等效于 trunc()。...提供一个好的错误消息来帮助困惑的搬运工会很好,但更重要的是不出现在 help(complex) 中。 给类型实现者的说明 实现者应该注意使相等的数字相等,并将它们散列为相同的值。
序列比对是生物信息学分析中的常见任务,包含局部比对和全局比对两大算法,局部比对最经典的代表是blast, 全局比对则用于多序列比对。...在biopython中,支持对序列比对的结果进行读写,解析,以及运行序列比对的程序。...在biopython中,为不同格式,不同软件提供了统一的接口,方便我们的使用 1....读取多序列比对结果 通过Bio.AlignIO模块来对多序列比对结果进行读写,其中的parse方法用于从文件句柄中读取多序列比对的内容,用法如下 >>> from Bio import AlignIO...运行多序列比对程序 为了简化调用,在Bio.Applicaitons模块中,提供了各种应有的调用接口。
首先简单介绍下 strpos 函数,strpos 函数是查找某个字符在字符串中的位置,这里需要明确这个函数的作用,这个函数得到的是位置。 如果存在,返回数字,否则返回的是 false。...echo '不存在'; } 输出了’不存在’;原因是因为 ‘沈’ 在‘沈唁志博客’中的第 0 个位置;而 0 在 if 中表示了 false,所以,如果用 strpos 来判断字符串中是否存在某个字符时...必须使用===false 必须使用===false 必须使用===false 重要的事情说三遍,正确的使用方式如下 // 判断‘沈唁志博客’中是否存在‘博客’这个词 if (strpos('沈唁志博客...no,no,no,这家伙还有个隐藏坑,我来换个词 // 判断‘沈唁志博客 1’中是否存在‘1’这个数字 if (strpos('沈唁志博客1', 1)===false) { // 如果不存在执行此处代码...原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:在PHP中strpos函数的正确使用方式
标签:VBA Q:我在工作表中放置有一些形状,例如圆形、矩形等,我想当我在工作表中使用鼠标单击这些形状时能够根据单击的形状有不同的操作,该如何实现?...我想在一个过程中实现,而不是每个形状关联不同的过程。 如下图1所示,当我使用鼠标单击上方的圆形时,会执行一个操作;单击下方的矩形时,会执行另一个操作,但这两个形状都关联相同的过程。...图1 A:在示例工作表中,将上方的圆形命名为“椭圆示例”,下方的矩形命名为“圆角矩形”。...End If End Sub 然后,返回工作表,在形状中单击鼠标右键,将其关联到宏过程testShape。当你单击工作表中的形状时,结果如下图2所示。...图2 你可以代替过程中MsgBox行的代码为你想要执行的操作代码。
$1 在Bash脚本的含义Create a shell script named demo-args.sh as follows:最快的理解方式是实际在Linux上创建一个测试文件,这里我们命名为 demo-args.sh...为新建的脚本文件新增可执行权限。...$1 in bash functions $1 在函数含义Create a new script called func-args.sh;创建一个名为func-args.sh的新脚本。...注意这里的$0并不是脚本的名称。xander@xander:~$ ./func-args.sh Usage: ..../func-args.sh filename我们在脚本中传入参数,结果正确执行:xander@xander:~$ .
再后面有了Amazon提出的DeepAR,是一种针对大量相关时间序列统一建模的预测算法,该算法使用递归神经网络 (RNN) 结合自回归(AR) 来预测标量时间序列,在大量时间序列上训练自回归递归网络模型...,并通过预测目标在序列每个时间步上取值的概率分布来完成预测任务。...基于RNN的模型中每一个隐状态都依赖于它前一步的隐状态,因此必须从前向后必须逐个计算,每一次都只能前进一步。而Transformer没有这样的约束,输入的序列被并行处理,由此带来更快的训练速度。...更强的长期依赖建模能力,在长序列上效果更好。...在标准的Transformer中, 这表示每一个单元都要访问所有的历史单元以及它自己(如图a所示),那么这样空间复杂度为 ,L是序列长度。
标签:VBA 有时候,工作簿中可能有大量的命名区域。...下面是一段简单的代码,它将列出工作簿中的所有定义的名称,并显示名称所指向的单元格区域。...'忽略错误 On Error Resume Next '遍历名称 For Each nm In Names '在列A中列出名称 wks.Range...("A" & Rows.Count).End(xlUp)(2) = nm.Name '在列B中列出名称指向的区域 wks.Range("B" & Rows.Count)...其中的错误捕捉语句以防止工作簿中没有命名区域。
在很多时候,我们代码中会有很多分支,而且分支下面的代码又有一些复杂的逻辑,相信很多人都喜欢用 if-else/switch-case 去实现。...做的好一点的会把这些逻辑封装成函数然后在分支中调用: switch ( type ) { case case1: return case1Func(); case case2...不仅违背开闭原则,而且随着 switch-case 分支的增多,该段代码只会越来越冗长。其实这种代码已经有成熟的模式去消除诸多的 if-else/switch-case 分支。...本文就教大家在 Spring 中如何用注解+策略模式+简单工厂的方式消除 if-else/switch-case 。...其实这是一种通用的解决方案,当你 if-else/switch-case 的分支超过 3 个、且分支代码相似且冗长的情况下就应该考虑这种模式。
考核内容: JS基础应用 题发散度: ★ 试题难度: ★ 看看大家的选择 解题: JS中常用的输出方式(五种) 1、alert("要输出的内容"); 在浏览器中弹出一个对话框,然后把要输出的内容展示出来...alert都是把要输出的内容首先转换为字符串然后在输出的 2、document.write("要输出的内容"); 直接的在页面中展示输出的内容 3、console.log("要输出的内容"); 在控制台输出内容...4、value ->给文本框(表单元素)赋值内容 获取文本框中(表单元素)的内容 document.getElementById("search").value = "要给#search这个文本框添加的内容...string)是增强版的字符串,用反引号(`)标识。...它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。 模板字符串中嵌入变量,需要将变量名写在${}之中。
遇到的问题 今天遇到一个线上的BUG,在执行表单提交时失败,但是从程序日志中看不到任何异常信息。...在Review源代码时发现,当catch到异常时只是输出了e.getMessage(),如下所示: logger.error("error: {}, {}", params, e.getMessage(...原因分析 先来看一下Java中的异常类图: ? Throwable是Java中所有异常信息的顶级父类,其中的成员变量detailMessage就是在调用e.getMessage()返回的值。...enableSuppression) suppressedExceptions = null; } 显然,从源码中可以看到在Throwable的默认构造函数中是不会给detailMessage...正确的做法 在Java开发中,常用的日志框架及组件通常是:slf4j,log4j和logback,他们的关系可以描述为:slf4j提供了统一的日志API,将具体的日志实现交给log4j与logback。
关于我 作者博客|文章首发 golang对json序列化和反序列化的操作实在是难受,所以说用习惯了高级语言特性,再转到这些偏原生的写法上就会很难受。 不多BB,开始记录。...序列化库的选择 当写个小demo或者做个小工具,没有大规模使用场景,那使用哪个库都是一样的,因为性能的体现并不会很明显。...但是如果是在实际项目中使用,且伴随着高并发,大容量等场景,我还是推荐使用json-iterator。...= nil { fmt.Printf("unmarshal err=%v\n", err) } fmt.Printf("反序列化后 slice=%v\n", slice) 推荐阅读 Redis工具收费后新的开源已出现...GitHub上Star最高的工程师技能图谱 中国程序员最容易发错的单词 END 欢迎关注公众号 程序员工具集 致力于分享优秀的开源项目、学习资源 、常用工具 回复关键词“关注礼包”,送你一份最全的程序员技能图谱
领取专属 10元无门槛券
手把手带您无忧上云