首页 > 解决方案 > 如何使用 LEFT 函数将单元格区域的子集复制并粘贴到另一列?

问题描述

我正在尝试创建一个脚本,该脚本在一系列脚本对数据执行其他处理后生成的组合.csv 文档中查找单个收据。我想获取收据的 ID 号并将其拆分到同一工作簿中的不同工作表中。这是我到目前为止所拥有的:

Sub CleanData()
Range("A:A").Sort Key1:=Range("A:A"), Order1:=xlDescending, Header:=xlYes
Range("W1").Value = "Receipt Number"
Range("W2").Value = Left(Range("A2"), 4)
End Sub

这有效地复制了一行数据,但我正在努力寻找一种方法来获取该列的全部内容,获取单元格的前 4 个字符,然后将其全部内容复制到另一列中。

先感谢您!

标签: excelvba

解决方案


我建议使用公式,自动填充,然后转换为值:

'Column W to same length as Column A
With Range(Range("W2"), Cells(Rows.Count,1).End(xlUp).Offset(0,22))
    .Formula = "=Left(A2, 4)" 'Apply Formula, with auto-fill-down
    .Calculate 'Calculate results of Formulae
    .Value = .Value 'Convert Formulae to Values
End With

推荐阅读