VBA标签创建

时间:2015-08-14 09:17:06

标签: excel-vba vba excel

我需要根据coloumn A中的值在工作簿中创建多个工作表。 工作表的名称应与库存A中的数据一致。

我已经创建了相同的vba代码,但我无法在第一个单元格到seond单元格之后循环它,依此类推。以下是我的代码。

Sub inputboxandsheetname()

    Dim myValue As Variant

    Dim irow As Long

    irow = 1

    Do While Cells(irow, 1) <> Empty

        myValue = Cells(irow, 1)

        If myValue <> "" Then

            Sheets.Add After:=Sheets(ActiveWorkbook.Worksheets.Count)

            ActiveSheet.Name = myValue

        End If

        irow = irow + 1

    Loop

End Sub

1 个答案:

答案 0 :(得分:0)

Cells(irow, 1) <> Empty
如果您没有使用工作表对象限定范围,它将始终引用ActiveSheet。添加新工作表时,这将成为包含空白单元格的活动工作表。

此外,在VBA中使用Empty来检查变量变量是否具有分配给它的值,而不是检查范围是否包含值。

请尝试以下方法:

Sub SO()

Dim indexSheet As Excel.Worksheet
Dim i As Integer
Set indexSheet = ActiveSheet
i = 1

While indexSheet.Cells(i, 1).Value <> vbNullString
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Name = indexSheet.Cells(i, 1).Value
    i = i + 1
Wend

End Sub