我有 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/