Excel宏不使用LEFT和RIGHT

时间:2016-03-16 15:59:21

标签: excel excel-vba macros vba

简单的问题,我只是看不出我的错误在哪里。我有2列数据。 B列中有8个字符的数据,从第11行开始.C列中包含大量数据,也从第11行开始。我正在尝试创建一个快速模块,我可以运行它将获取B列单元格中的前8个字符,并将其与C列中最多100个字符组合,并将此组合数据放入A列。这将循环并且为接下来的200行数据做这件事。代码如下。

Sub concat()
For X = 11 To 200
 Range("A" & X).Value = Left("B" & X, 8) & Right("C" & X, 100)
Next X
End Sub

原始数据:

A            B                  C
             testdata          SomeExtremelylongtext...

预期结果

A                                                  B                  C
testdataSomeExtremelylongtext...                testdata          SomeExtremelylongtext...

我实际得到的是什么

A                         B                  C
B11C11                testdata          SomeExtremelylongtext...

2 个答案:

答案 0 :(得分:2)

您需要更改:

Range("A" & X).Value = Left("B" & X, 8) & Right("C" & X, 100)

为:

Range("A" & X).Value = Left(Range("B" & X), 8) & Right(Range("C" & X), 100)

你真正找到文本字符串的左边8" B11"当你想要B11和C11范围内的值时,文本字符串" C11"的右边100。

答案 1 :(得分:1)

如果你想要来自" C"的前100个字符。然后将RIGHT更改为LEFT

Range("A" & X).Value = Left(Range("B" & X).Value, 8) & Left(Range("C" & X).Value, 100)