比较 Excel 中两列的差异,并用箭头标识和指向匹配结果

该博客介绍如何使用VBA在Excel中比较两个列的差异,并通过箭头标识指出匹配结果。首先,遍历两列以找出不匹配的单元格,然后提供代码实现绘制和清除箭头的宏,以帮助用户更直观地理解比较结果。

在这里插入图片描述




1. 简介 - 比较两个 Excel 列

查找两个 excel 列之间的差异。 通过遍历未知长度和未知顺序的列,将较长的列表与较短的列表进行比较,突出显示差异并输出指向匹配单元格的“Key”。



2. 示例 - 比较两个列

查找两个列之间的差异。

比较结果如图:
(注:比较列为A、C列,B列为结果输出列):
在这里插入图片描述

实现功能所用的代码:

Sub CompareColumns()
	Dim strCol1 As String           '第一列位置
### 箭头函数与普通函数中 `this` 指向的区别及用法 箭头函数普通函数在 JavaScript 中有着显著的区别,特别是在 `this` 的指向方面。以下是详细分析: #### 1. 普通函数中的 `this` 指向 普通函数的 `this` 指向取决于调用方式: - **作为对象方法调用**:`this` 指向调用该方法的对象。 - **作为独立函数调用**:在严格模式下,`this` 指向 `undefined`;在非严格模式下,`this` 指向全局对象(通常是 `window`)。 - **通过 `call`、`apply` 或 `bind` 调用**:`this` 可以被显式绑定到指定的对象。 - **作为构造函数调用**:`this` 指向新创建的实例对象。 示例代码如下: ```javascript function normalFunction() { console.log(this); } const obj = { method: normalFunction }; obj.method(); // this 指向 obj normalFunction(); // 在严格模式下为 undefined,非严格模式下为 window ``` #### 2. 箭头函数中的 `this` 指向 箭头函数的 `this` 是在其定义时从外层作用域继承的,而不是在运行时确定的。这意味着: - 箭头函数没有自己的 `this`,它会捕获其所在上下文的 `this` 值。 - 即使通过 `call`、`apply` 或 `bind` 调用箭头函数,也无法改变其 `this` 指向。 - 如果箭头函数定义在全局作用域中,则其 `this` 指向全局对象(严格模式下为 `undefined`,非严格模式下为 `window`)。 示例代码如下: ```javascript const arrowFunction = () => { console.log(this); }; const obj = { method: arrowFunction }; obj.method(); // this 指向全局对象或 undefined(取决于是否启用严格模式) arrowFunction(); // this 指向全局对象或 undefined ``` #### 3. 使用场景对比 - **普通函数适用场景**: - 需要动态绑定 `this` 的场景。 - 构造函数或需要原型链继承的场景。 - **箭头函数适用场景**: - 不需要动态绑定 `this` 的场景。 - 用于回调函数或需要简洁语法的场景。 #### 4. 注意事项 - 箭头函数不能用作构造函数,因此无法使用 `new` 关键字调用[^1]。 - 箭头函数没有 `arguments` 对象,可以使用 rest 参数代替[^2]。 - 箭头函数不支持 `prototype` 属性,因此无法通过原型链扩展功能。 ### 总结 普通函数的 `this` 是动态绑定的,而箭头函数的 `this` 是静态绑定的。箭头函数更适合那些不需要动态 `this` 的场景,而普通函数则适用于需要动态绑定 `this` 的场景。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

←か淡定☆ ヾ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值