基于FOR循环索引的单元格引用

时间:2016-02-08 10:09:49

标签: excel vba

以下是我的一些代码:

Dim wbX As Workbook
Dim wbY As Workbook
Set wbX = Application.Workbooks.Open("C:\Converter\aaa.xls")
Set wbY = Application.Workbooks.Open("C:\Converter\bbb.xlsx")

For i = 1 To wbX.Sheets.Count
wbY.Sheets(1).Activate
Range("Y" & i + 2).Select
ActiveSheet.Range("Y" & i + 2).Formula = "=RIGHT(("S" & i + 2); 4)"

问题是(" S"& i + 2)无法识别为单元格 - VBA会吐出语法错误。

2 个答案:

答案 0 :(得分:0)

也许这个例子可以帮助你:

Option Explicit

Sub test()
    Dim rngC As Range
    For Each rngC In Range("C2:C100")
        rngC.Offset(0, 4) = Right(rngC, 4)
    Next
End Sub

答案 1 :(得分:0)

您的表达式"Y" & i + 2不会产生有效的单元格引用,因为您将数字连接到字符串。您必须将数字表达式转换为字符串:

"Y" & Str(i + 2)

我从你的评论中理解,作业应写成:

"=LEFT(S" & Trim(Str(i + 2)) & "; 4)"    ' yields e.g.: =LEFT(S3; 4)

(LEFT函数从字符串中获取第一个字符。这假设您引用的单元格包含字符串,或者VB首先将值转换为字符串。在这里您必须使用{{1因为你正构造一个字符串作为公式放在单元格中。)