循环使用CStr递增行

时间:2015-07-07 16:17:08

标签: excel-vba vba excel

我循环浏览一个文件(垃圾data.xlsx)来捕获(thisworkbook)的数据。对于范围C1,它是对垃圾数据文件中数据的直接引用,通过使用CStr递增垃圾数据文件中的行号,效果很好。但是当我使用垃圾数据文件中的单元格内容的公式来剥离左边的三个字符(=范围A1的LEFT(C1,3)时,我得到一个语法错误消息。我想要做什么错了?

Dim r As Integer 'for row count in junk data file
r = 1
Workbooks("junk data.xlsx").Sheets("sheet1").Activate

'loop through junk data file until an empty row is found
 Do While Cells(r, 1) <> ""
    ThisWorkbook.Activate
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "=LEFT('[junk data.xlsx]Sheet1'!R" & CStr(r) &"C1",3)"

    Range("C1").Select
    ActiveCell.FormulaR1C1 = "='[junk data.xlsx]Sheet1'!R" & CStr(r) & "C8"

    Workbooks("junk data.xlsx").Sheets("sheet1").Activate
    r = r + 1
Loop

2 个答案:

答案 0 :(得分:0)

 &"C1",3)"

一个引号太多:

 &"C1,3)"

答案 1 :(得分:0)

也许我误解了你要做的事情,但是左(s,3)并没有&#34;剥离左边3个字符&#34;。它恰恰相反。它会保留这些字符并删除其他所有内容。你似乎想要Mid():

Sub test()
    Dim s As String
    s = "Hello World"
    MsgBox Left(s, 3) 'diplays "Hel"
    MsgBox Mid(s, 4) 'displays "lo world"
End Sub