VBA for循环仅迭代一次

时间:2018-11-02 20:31:05

标签: excel vba powerpoint

我在使用此VBA时遇到麻烦-我的for循环仅重复一次,当它递增时,它表明对象“工作表”中的“单元”方法失败。尽管它在第一次迭代中起作用...我认为我的StatusUpdate函数正在破坏它,但是当我注释掉它时,它还是会失败。在任何人的主子中有什么突出的吗?愿意在需要时发布更多代码。

Sub CreateSlides()

Dim XLapp As New Excel.Workbook

Dim WS As New Excel.Worksheet

Set XLapp = Excel.Workbooks.Open("J:\OPERATIONS\CAPITAL PROJECTS\Clara\test.xlsx")

Set WS = XLapp.Sheets(1)

XLapp.Activate
WS.Select

Dim CD As Integer
CD = 0

Dim cell As Range

Dim i As Integer

Dim LastRow As Integer
LastRow = WS.Cells(WS.Rows.Count, 1).End(xlUp).Row

'Delete old slides
If ActivePresentation.Slides.Count > 1 Then
    Call DeleteSlides
End If

'Loop through each used row in Column A
For i = 2 To LastRow

    CD = WS.Cells(i, 35).Value

    ActivePresentation.Slides(1).Copy
    ActivePresentation.Slides.Paste (ActivePresentation.Slides.Count + 1)

    ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes("project").TextFrame.TextRange = WS.Cells(i, 7).Value
    ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes("park location").TextFrame.TextRange = WS.Cells(i, 9).Value
    ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes("cb").TextFrame.TextRange = Right(WS.Cells(i, 36).Text, 2)
    ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes("cm").TextFrame.TextRange = (CouncilMember(CD))
    ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes("scope").TextFrame.TextRange = WS.Cells(i, 8).Value
    ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes("funding").TextFrame.TextRange = FundingEst(i)
    ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes("status").TextFrame.TextRange = StatusUpdate(i)

Next

End Sub

1 个答案:

答案 0 :(得分:0)

您不必遍历第a列,而是要进入工作表的第35列。改变

CD = WS.Cells(i, 35).Value

CD = WS.Cells(i, 1).Value

此外,如果这些单元格中的内容不是整数,而是文本或其他内容,您会得到错误提示吗?