Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA-将字符串中的前三个字符复制到另一个单元格中_Vba_Excel - Fatal编程技术网

VBA-将字符串中的前三个字符复制到另一个单元格中

VBA-将字符串中的前三个字符复制到另一个单元格中,vba,excel,Vba,Excel,我很难从一个单元格中拆分前三个字符,并将它们作为单独的字符串插入另一个单元格 我的(示例)输入: 我想要的是: A B A123456 A12 A133457 A13 B123456 B12 B133457 B13 ... ... 我尝试的是: Dim ws As Worksheet Dim cell As Range Set ws = Worksheets("summary") For Each cell I

我很难从一个单元格中拆分前三个字符,并将它们作为单独的字符串插入另一个单元格

我的(示例)输入:

我想要的是:

A            B
A123456      A12
A133457      A13
B123456      B12
B133457      B13
...          ...
我尝试的是:

Dim ws As Worksheet
Dim cell As Range

Set ws = Worksheets("summary")

For Each cell In ws.Range("A").Cells
    cell.Value = Left(cell.Value, 3)
    Next cell

这无法工作,因为我将覆盖所有不希望覆盖的单元格A中的值。有人能提供帮助吗?

在没有VBA的Excel中,您可以使用以下公式: =左(A1,3)

使用VBA,可以执行以下操作:

For Each cell In ws.Range("A:A").Cells
    cell.Offset(0, 1).Value = Left(cell.Value, 3)
Next cell
请注意,我已经修改了范围。你可能想进一步限制,因为“A:A”需要一段时间


偏移功能显示“使用当前单元格右侧的单元格1”。

非常感谢。在这个例子中,我说我需要右单元格来表示新的值,但我需要左单元格(因此,单元格A中的所有值都在单元格B中,剪切后的值将进入单元格A)。希望你明白我的意思。我该怎么做?@KevinD只需在a列的左侧插入一列,然后调整VBA或工作表公式答案以反映该公式:=左(B1,3)VBA:对于ws.Range(“B:B”).Cells cell.Offset(0,-1)。Value=左(cell.Value,3)下一个单元格
For Each cell In ws.Range("A:A").Cells
    cell.Offset(0, 1).Value = Left(cell.Value, 3)
Next cell