求帮我看看这个VBA程序有什么问题!

Sub 调试()
Set oSheetData = ActiveWorkbook.Worksheets("打印页")
oSheetData.Activate
Dim i As Integer
i = 2
Do While Cells(i, "I") <> ""
ActiveWorkbook.Worksheets("数据页").Range("I" & i).Copy
ActiveWorkbook.Worksheets("打印页").Range("A8").Select
ActiveSheet.Paste
Loop
End Sub

问题多多啊!

1. Cells(i, "I") 这个引用不符合规范语法,虽然可以执行,但最好用Cells的标准语法,参数应为行号和列号。

2. Do ... Loop 循环体中,没返山余有改变 While Cells(i, "I") <> "" 这个循环漏滚条件的状态,或者说,变量 i 没有改变,始终是在判断 I2 单元格中的内容是否为空,而且 I2 唯山单元格在循环体中也没有变化,所以是死循环。

3. 复制粘贴代码还可再简化为一句:

ActiveWorkbook.Worksheets("数据页").Range("I" & i).Copy Destination:=oSheetData.Range("A8")

cells和range弄混了碰知散。
请把Cells(i,"笑氏I") 改成Range("I" & i)或猛衫者Cells(i , 9)
少了这个 i=i+1,死循环了