VBA崩溃Excel

时间:2017-04-19 08:44:23

标签: excel vba excel-vba

我使用excel和VBA使用下表的内容附加单元格。从表1中收集数据。代码首先检查B(2)列中的选项是op1,然后应该读取A(1)列的内容并附加单元格D2({{{表2中的1}}。

然后使用循环遍历表1中的所有值,然后应该连续填充表2,直到超出设置限制(3)。

表1:

op1

表2:

A       B
---    ---
text    op1
textt   op2
text    op1

我使用的代码如下。

D
---
op1
*** The Cell I want to Append ***

1 个答案:

答案 0 :(得分:3)

Option Explicit

Sub ProcOne()

    Dim OpColMain   As Long
    Dim TextColMain As Long
    Dim opColOne    As Long
    Dim i           As Long

    opColOne = 4

    TextColMain = 1
    OpColMain = 2

    i = 1

    Do Until i >= 3
        With ActiveSheet

            If .Cells(i, OpColMain) = "op1" Then
                .Cells(2, opColOne) = .Cells(2, opColOne) & vbNewLine & .Cells(i, TextColMain)
            End If
            i = i + 1

        End With
    Loop

End Sub

您需要Option Explicit,以确保正确声明所有变量。 您需要With ActiveSheet,因为没有它,您可能会在Excel中收到错误。因此,你 将.Cells声明为ActiveSheet而不只是Cells。请在此处查看Microsoft信息:Worksheet.Cells Property (Excel)

最后但并非最不重要的是i = i + 1应该在循环之外,以确保我们离开无限循环。或者在里面,取决于代码和案例。但在这种情况下,我们只有3条线 - 外面。

最终编辑 - 如果你想循环3次,请使用Do Until i >= 3,否则你只循环两次。