我需要根据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
答案 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