增加VBA For循环命令按钮

时间:2015-01-20 15:27:02

标签: vba for-loop increment activexobject

美好的一天!

我目前在使用命令按钮方面存在轻微问题,我希望能够执行以下操作:将特定行格式化为特定行高,将粗边框添加到同一行中的特定数量的单元格行和计数并将这样产生的行数添加到文件中的初始数字。基本上,该按钮应该使电子表格的用户能够添加具有特定格式的新行,用户将在其中输入数据并跟踪添加的行数。

我目前的代码原样是:

Option Explicit

Private Sub NewLineRedButton_Click()

    Dim i As Long
    Dim y As Long

    For y = ThisWorkbook.Worksheets("Flags").Cells(16.3) To y + 1
        ThisWorkbook.Worksheets("Flags").Cells(16, 3) = y + 1
        For i = 20 To i + y Step 1
            ThisWorkbook.Worksheets("Flags").Rows(i).RowHeight = 45
            ThisWorkbook.Worksheets("Flags").Cells(i, 1).Borders.LineStyle = xlContinuous
            ThisWorkbook.Worksheets("Flags").Cells(i, 1).Borders.Weight = xlMedium
        Next
    Next

End Sub

此时代码仅执行下面两行并停止。我不太确定,为什么......?

2 个答案:

答案 0 :(得分:0)

像这样写一个for循环

For y = ThisWorkbook.Worksheets("Flags").Cells(16.3) To y + 1

与写这样的

相同
For y = ThisWorkbook.Worksheets("Flags").Cells(16.3) To 1

我猜测单元格中的值为零,因此它将执行0和1的循环 - 即你看到的两次。

你需要像

这样的东西
lEndRow = lStartRow + (lRowCount - 1)
For y = lStartRow to  lEndRow

答案 1 :(得分:0)

我现在好了。只是不能让它做所有具有正确边框的列...我不知道如何在使用单元格(#,#)表示法时调用它们,我无法看到如何使用范围(' 'Z#,Z#'')表示我的i变量是Long ...

无论如何:这是迄今为止的结果:

Option Explicit

Private Sub NewLineRedButton_Click()

        Dim i As Long
        Dim y As Long
        Dim RowEnd As Long


        RowEnd = ThisWorkbook.Worksheets("Flags").Cells(Rows.Count, 1).End(xlUp).Row

    For y = 19 To RowEnd
        ThisWorkbook.Worksheets("Flags").Cells(16, 3) = y - 17 ' First row which is already on the sheet is on row 19, first row appearing by button clicking is on row 20 and the program is counting the header hence the y - 17 for the value of the number of rows.
        For i = 19 To RowEnd + 1 Step 1
            ThisWorkbook.Worksheets("Flags").Rows(i).RowHeight = 45
            ThisWorkbook.Worksheets("Flags").Cells(i, 1).Borders.LineStyle = xlContinuous
            ThisWorkbook.Worksheets("Flags").Cells(i, 1).Borders.Weight = xlMedium

        Next
    Next

End Sub

感谢您的帮助和想法,最后摆弄,并从这里给出的线索中找到了其他资源。