vba - 比较两列,但只有前 4 个字母 - vba excel

标签 vba excel

我有 2 列 - A 列和 B 列,填充了不同的项目。 B 列总是较短(它的项目比 A 列少)。我需要 Excel 2007 中的 VBA 公式来执行以下操作:

1) 比较 B 列项目的前 4 个字母与 A 列项目的前 4 个字母

2) 在 A 列中找到一个匹配项,并将 A 列中单元格的全部内容复制到 C 列,在 B 列中匹配的项目旁边。

这是我到目前为止所做的:

    Sub Compare()
Dim Range1 As Range, Range2 As Range, Rng1 As Range, Rng2 As Range
Dim x As Long
xTitleId = "Compare"
Set Range1 = Application.Selection
Set Range1 = Application.InputBox("Range1 :", xTitleId, Range1.Address, Type:=8)
Set Range2 = Application.InputBox("Range2:", xTitleId, Type:=8)
Application.ScreenUpdating = False
For Each Rng1 In Range1
    xValue = Rng1.Value

    For Each Rng2 In Range2
    x = Rng2.Row
        If xValue = Rng2.Value Then
            Rng1.Copy
            ActiveSheet.Range("C" & x).PasteSpecial
        End If
    Next
Next
Application.ScreenUpdating = True
End Sub

这段代码完成了这项工作,但它比较了整个单词,我只需要前 4 个字母。我知道函数 Left,但我不知道如何在这里实现它。谁能帮我?

最佳答案

您需要的功能如下:

test = Left("YOURVALUE",4)

当然也有相反的功能:
test = Right("YOURVALUE",5)

在第一种情况下,测试结果是“YOUR”,在第二种情况下是“VALUE”

要复制 C 列中的值,您可以使用两种策略:
ActiveSheet.Range("C" & x).Cells(row_index, column_index)

或者
ActiveSheet.Range("C" & x).PasteSpecial

关于vba - 比较两列,但只有前 4 个字母 - vba excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29930754/

相关文章:

excel - 比较两列并格式化具有不同颜色的匹配单元格

excel - 使用 Powershell 将 CSV 数据插入 Excel 中下一个可用的相应单元格

excel - 确保 Excel 单元格内的有效日期

excel - 书签特殊粘贴,Excel 在同一文件夹中查找

excel - 使用 VBA 从 Web 服务器下载日志文件

excel - Iferror/Vlookup 使用变量

Excel 宏 - 仅将非空单元格从一张工作表粘贴到另一张工作表

vba - Excel VBA 中的 Like 运算符

excel - 如何调整选择的大小直到第一个工作表列

vba - 如何使用名称和列引用循环 Excel 2010 表?