标签: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)...其中的错误捕捉语句以防止工作簿中没有命名区域。
在上一小节中关于在链表中头部添加元素与在其他位置添加元素在逻辑上有所差别,这是由于我们在给链表添加元素时需要找到待添加元素位置的前一个元素所在的位置,但对于链表头来说,没有前置节点,因此在逻辑上就特殊一些...为了针对头结点的操作方式与其他方式一致:接下来我们就一步一步引入今天的主题--使用虚拟头结点。 首先来看看之前的节点结构--第一个是头结点 ? ...则dummyHead节点变为了0这个节点(头结点)的前置节点,则现在所有节点都有了前置节点,在逻辑可以使用统一的操作方式。...size = 0; } (3)改进之前的add(int index,E e)方法,之前对在头结点添加元素单独做了处理(if-else判断),如下: 1 //在链表的index(0--based...LinkedList() { 43 dummyHead = new Node(null, null); 44 size = 0; 45 } 46 47 //获取链表中的元素个数
在本篇博客中,我们将探讨如何实现一个方法,该方法能够在给定的整数数组中,找出第一个仅重复出现两次的元素。如果数组中不存在这样的元素,则方法将返回null。...定义一个方法,功能是找出一个数组中第一个只重复出现2次的元素,没有则返回null。...例如:数组元素为 [1,3,4,2,6,3,4,2,3],重复两次的元素为4和2,但是元素4排在2的前面,则结果返回4。...我们选择使用LinkedHashMap是为了保持元素的插入顺序,这对于找到排在前面的符合条件元素非常有用。 通过循环遍历数组中的每个元素,我们检查m是否已包含当前元素。...我们使用另一个循环遍历m的所有键(元素),并检查对应的值(出现次数)。如果某个元素的出现次数为2,我们将该元素的值赋给value,然后跳出循环。
图1 在本示例中,只指定了第一个参数,即要拆分的文本。由于未指定分隔符,因此将空格字符作为默认分隔符。 注意:VBA Split函数返回索引基于0开始的数组。...示例2:统计句子中的单词数 可以使用Split函数来获取一个句子中的单词总数,也就是计算拆分文本得到的数组中的元素数。...可以使用类似的代码在VBA中创建一个自定义函数,该函数将文本作为输入并返回单词数。...图6 示例5:获取文本中指定的字符串 使用VBA中的Split函数,可以指定要使用结果数组的哪个部分。 下面是一个自定义函数的代码,可以在其中指定一个数字,它将从数组中返回该元素。...然后返回指定为第二个参数的元素。注意,由于索引基数为0,所以使用num-1正确返回所需元素。 示例结果如下图7所示。
工具函数-根据元素的起始位置和最终位置,计算相对于某元素的位置 export interface IPosition { left: number; top: number; } /** *...根据元素的其实位置和最终位置,计算相对于某元素的位置 * @param initialPosition 拖动元素相对于屏幕左上角的起始位置(偏移量) * @param finalPosition 拖放完成后当前节点相对于屏幕左上角的位置...finalX) - dropTargetPosition.left; return { left: newXposition, top: newYposition, }; }; 在drop...回调函数中 drop(target: any, monitor: DropTargetMonitor) { console.log(target, monitor); const position...= getCorrectDroppedOffsetValue( monitor.getInitialSourceClientOffset(), // 拖动元素相对于屏幕左上角的起始位置(偏移量
在各大插件中,破解工作表、工作薄密码的功能比比皆是,此篇开源确实有些炒冷饭凑文章的嫌疑,但换个角度,当时笔者开发过程中,找寻相关的代码,也还是花上一些的时间在百度里找了好久,原因如下: 1.大部分能够找到的代码都是...VBA的代码 这说明在Excel高级开发群体中,特别是VSTO、COM加载项开发群体中,还是守口如瓶的,仿佛越是高级的开发者,越对自己掌握的“核心”技术保密,希望Excel催化剂这一系列的开源文章对此风气有所好转...代码实现 工作表保护破解 在微软官方文档中,看到工作表保护在Excel2013上得到增强,着实吓一跳,以为是旧的破解代码肯定会失效。...方式未能破解成功,印象中还有一个问题是不懂得如何改写回.Net的C#代码,看到的是一大坨的VBA代码,也看不懂。...的教程已经非常丰富了,但VSTO仍是十分欠缺,但其实也不完成是欠缺,只要合理使用搜索引擎和官方帮助文档,还是可以找到够用的知识点使用的。
CDATA - 未解析的字符数据术语 CDATA 用于指代 XML 解析器不应解析的文本数据。字符如 "<" 和 "&" 在 XML 元素中是非法的。"...XML DOM - 导航节点可以使用节点之间的关系来导航节点。导航 DOM 节点通过节点之间的关系在节点树中访问节点,通常被称为"导航节点"。...getAttribute() 方法返回属性的值。获取元素的值在 DOM 中,一切都是节点。元素节点没有文本值。元素节点的文本值存储在子节点中,这个节点被称为文本节点。...getElementsByTagName 方法getElementsByTagName() 方法按照它们在源文档中出现的顺序,返回指定标签名的所有元素的节点列表。...更改元素的值在 DOM 中,一切都是节点。元素节点没有文本值。元素节点的文本值存储在子节点中,这个节点被称为文本节点。要更改元素的文本值,必须更改元素的文本节点的值。
("div");注释: document.getElementsByTagName 返回的是一个类数组对象,可以使用数组的方法对其进行处理,但类数组对象并不具有数组所具有的方法b....style.display = "block"; }}index 返回字符位置,它是被搜索字符串中第一个成功匹配的开始位置,从零开始this 是 Javascript 的一个关键字,它代表函数运行时,...,我们可以通过控制台打印来看到 this 所输出的内容Let 命令ES6 中新增了 let 命令,用来声明变量,其用法类似于 var,但是所声明的变量,只在 let 命令所在的代码块内有效在上面的代码中...,我们在代码块里,分别用 var 和 let 声明了两个变量,接着在代码块内外打印这两个变量,可以看到,var 声明的变量返回了正确的值,代码块内打印 let 声明的变量返回了正确的值,而在代码块外打印...let 声明的变量报错,这表明,let 声明的变量只在它所在的代码块有效上面代码中,变量 i 是 var 声明的,在全局范围内都有效,所以全局只有一个变量 i,每一次循环,变量 i 的值都会发生改变,
Windows注册表用于存储与计算机相关的各种设置,VBA中的GetSetting函数和SaveSetting函数能够读写Windows注册表,这样,我们不仅能够获取应用程序和硬件的信息,也可以将应用程序中的信息存储在注册表中以供使用...4.参数default,可选,如果注册表项设置中没有设置值,则返回该缺省值。如果省略该参数,则其值是一个零长字符串(””)。...说明: 1.该函数从注册表中的HKEY_CURRENT_USER\Software\VBand VBA Program Settings键的子键中检索值。 2.该函数返回字符串值。...因此,在使用从注册表返回的数值型值之前,应该使用合适的转换函数将返回值转换为数值数据类型。 3.GetSetting不能检索注册表项的缺省值。...2.该函数返回的数组中的第一维元素为项名,第二维元素为各个项的值。 3.该函数返回的二维数组的下标从0开始。因此,第一个注册表项名可以通过引用元素(0,0)获取。
那么在 js 中设置的时候需要把 "-" 去掉,然后除第一个单词的首字母大写即可。...方式二中之所以加 return,是因为 f1() 执行后返回的是 false,而不是 return false,所以要加一个 return。...2、获取元素的方式总结 1、根据 id 的属性的值获取元素,返回值是一个元素对象 document.getElementById("id属性的值"); 2、根据标签名获取元素,返回值是包含多个元素对象的伪数组...document.getElementsByTagName("标签名字"); 3、根据 name 属性的值获取元素,返回值是包含多个元素对象的伪数组 document.getElementsByName...("name属性的值"); 4、根据 class 类样式的名字获取元素,返回值是包含多个元素对象的伪数组 document.getElementsByClassName("class类样式的值"); 5
3.1.2 标签名字 getElementsByTagName方法会返回一个对象数组,数组的元素就是和getElementById差不多的获取到的对象: document.getElementsByTagName...另外它也可以和前面两种方法混合使用,用法和getElementById和getElementsByTagName结合使用的例子一致。...3.1.4 CSS选择器 还有html5中新增的两个方法,让我们可以用css选择器的方法来选择DOM节点,这两个方法必须在IE8以上的现代浏览器中才能使用。...返回端口号,如果没有则是空字符串 protocol http: 返回页面所使用的协议 search ?...q=java 返回url中查询的字符串,以?
大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程。此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注。...在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目。现在就让我们一起进入 Web 前端学习的冒险之旅吧!...标签也叫元素,也叫对象。 页面中的顶级对象:document。 节点(node):页面中所有的内容都是节点。包括标签,属性,文本等 xml 文件也可以看成一个文档。 html:侧重于展示数据。...由文档及文档中的所有元素(标签)组成的树状结构,叫树状图(DOM树) 二、DOM的作用 DOM的作用主要是:操作页面的元素(标签)。...3、在 html 中,如果属性的值只有一个,可以直接写这个属性,而不需要赋值,也是有效的。
,IXMLDOMElement接口还向外暴露以下方法: 方法 说明 get_tagName 检索元素名称(在tag之间的文本)。...getAttribute 检索所指定名字的属性的值。 getAttributeNode 检索所指定名字的属性的节点 getElementsByTagName 检索与提供的名称匹配的所有子元素的列表。...removeAttribute 移动或替换给定名称的属性 removeAttributeNode 从这个元素中移除指定的属性 setAttribute 为给定名称的属性设置值 setAttributeNode...在此元素上添加或替换提供的属性节点。...不能省略 SysFreeString(ssName); 将CComBSTR类字符串的内容复制到wstring中,然后使用wcout输出 CComBSTR ssName; wstring bstrText
有时候,你可能只想检查一个字符串是否确实指向一个有效的文件或目录。 VBA的GetAttr函数将返回文件的基本属性。...表中的第一列是VBA中的名称,相对于第二列中的值更易理解。在VBA程序中,可以将 vbXX名称与数字值互换使用。 输出 GetAttr函数输出的究竟是什么呢?...要使用GetAttr函数,不需要更多信息,但如果想了解如何分解返回的总和数值,看下面的讲解。 按位与分解 那么我们如何测试一个数字是否真的是和的一部分呢?可以通过使用按位与来实现。...64 = 1000000 因为上表中的每个值都是2的幂,所以位串表示中的所有位除了其中一个外都为零。...,我们在6中有一个1位,按位AND运算符输出产生一个非零数,因此4,vbSystem,是6的一部分。
查找并访问节点 你可通过若干种方法来查找您希望操作的元素: 通过使用 getElementById() 和 getElementsByTagName() 方法 通过使用一个元素节点的 parentNode...同时,getElementById() 方法也会返回正确的元素,不论它被隐藏在文档结构中的什么位置。 这两种方法会像您提供任何你所需要的 HTML 元素,不论它们在文档中所处的位置!...() 无法工作在 XML 中。...getElementsByTagName() 方法会使用指定的标签名返回所有的元素(作为一个节点列表),这些元素是您在使用此方法时所处的元素的后代。...: document.getElementsByTagName("p"); 实例 2 下面这个例子会返回所有 元素的一个节点列表,且这些 元素必须是 id 为 "maindiv" 的元素的后代
文本始终存储在文本节点中在 DOM 处理中常见的错误是期望元素节点包含文本。然而,元素节点的文本存储在文本节点中。...此外, 元素是 、、 和 元素的父节点。XML DOM - 访问节点使用 DOM,您可以访问 XML 文档中的每个节点。...语法node.getElementsByTagName("tagname");示例以下示例返回 x 元素下的所有 元素:x.getElementsByTagName("title");注意...要返回 XML 文档中的所有 元素,请使用:xmlDoc.getElementsByTagName("title");其中 xmlDoc 是文档本身(文档节点)。...此代码片段从 "books.xml" 中的第一个 元素返回属性节点的列表:x = xmlDoc.getElementsByTagName('book')[0].attributes;执行上述代码后
在此示例中,错误是除数为零,该错误在代码尝试以零作为除数时发生,其编号为11。你还可以看到此对话框中有四个按钮,其中一个按钮被禁用。 继续。...如果程序在VBA编辑器中运行,则可以使用此按钮暂停程序并突出显示发生错误的代码行。但是,如果工程使用密码锁定(由于几乎总是锁定分发的应用程序),则“调试”选项将不可用。 帮助。...提示:由于VBA过程的内容彼此独立,因此可以在多个过程中为错误处理代码使用相同的标签。...执行数学计算的过程应注意溢出和零除错误,但是该过程可以忽略与文件相关的错误,因为在该过程执行期间它们不会发生。 在VBA程序中,过程通常会调用其他过程。...程序可以在无法提前知道是否打开特定工作簿的情况下使用此功能。清单26-3展示了一个函数,该函数在打开时返回对工作簿的引用,或者在没有打开时返回Nothing。程序可以调用此函数并测试其返回值。
---- 访问 HTML 元素(节点) 访问 HTML 元素等同于访问节点 您能够以不同的方式来访问 HTML 元素: 通过使用 getElementById() 方法 通过使用 getElementsByTagName...() 方法 通过使用 getElementsByClassName() 方法 ---- getElementById() 方法 getElementById() 方法返回带有指定 ID 的元素引用: 语法...() 方法 getElementsByTagName() 返回带有指定标签名的所有元素。...语法 node.getElementsByTagName("tagname"); 下面的例子返回包含文档中所有 元素的列表: document.getElementsByTagName("p")...的所有元素的一个列表: 注意:getElementsByClassName() 在 Internet Explorer 5,6,7,8
举一个栗子,选取所有包含span元素的对象 var spans = document.getElementsByTagName("h3") 将会返回一个NodeList对象 var firstspara...= document.getElementsByTagName("p") // 选取所有的p元素的,返回一个所有p元素的对象 console.log(firstspara[0]); // 返回第一个元素...html中,总是为html元素 节点列表和html集合 getElementsByName()以及getElementsByTagName()都会返回NodeList对象 Nodelist 对象 : 属于只读的类数组对象...div中的有一个该方法,如果页面动态加载进的div元素,其中的length会自动更新加1,也会自动成为NodeLsit成员, 迭代删除一个元素 var snapshot = Array.prototype.slice.call...(document.getElementsByTagName("img"), 0) // 使用浅拷贝,生成副本对副本进行操作 再次使用 Array.prototype.splice() 执行删除操作,但是其真正的节点不会删除
在使用变量时经常要声明变量的类型,下面我们就主要介绍VBA的基本数据类型,对于枚举型和用户自定义类型先作了解即可。 ? 一、VBA基本数据类型 ?...大部分基本数据类型,在EXCEL平时使用时也会了解到类似的,比如数值、日期/时间、文本、货币等等。那么VBA在这些基础上还增加了字节、布尔和变体数据等等。...1、字符串(String) 字符串是一个字符序列,类似于EXCEL中的文本,在VBA中字符串是包括在双引号内的(英文双引号),如果字符串双引号内长度为零,即“”就是空字符串。...在VBA中还可以使用Type语句来定义自己的数据类型,其格式如下: Type 数据类型名 数据类型元素 AS 数据类型 数据类型元素 AS 数据类型 ... ......End Type 自定义的数据类型的定义必须放在模块的声明部分中,这些都先作了解。 ---- ? 本节VBA的数据类型就介绍这些,最主要的就是第一部分基本的数据类型,后期会常用到的基础内容。
领取专属 10元无门槛券
手把手带您无忧上云