在VBA(Visual Basic for Applications)中,可以很根据工作表(Sheet1)上的一个名称列表来自动创建多个新的工作表,每个名称对应一个新的工作表。假设Sheet1的A列从A2开始包含了需要创建的工作表名称(A1可以是标题行,如"Sheet 名称")。如图所示:
第一步:没有office excel 的宝子请先安装,下载教程请点击下面链接查看:
第二步:打开Excel,然后按 Alt + F11 打开VBA编辑器。
第三步:在VBA编辑器中,选择 插入 -> 模块 来创建一个新的模块。
第三步:在新模块的代码窗口中,编写代码(下面是一个基本的VBA脚本示例,展示了如何实现这个功能)
Sub CreateSheetsFromList()
Dim ws As Worksheet
Dim wsNames As Worksheet
Dim lastRow As Long
Dim sheetName As String
Dim i As Long
' 设置Sheet1为包含名称的工作表
Set wsNames = ThisWorkbook.Sheets("Sheet1")
' 找到名称列表的最后一行
lastRow = wsNames.Cells(wsNames.Rows.Count, "A").End(xlUp).Row
' 从第二行开始循环(假设第一行是标题)
For i = 2 To lastRow
sheetName = wsNames.Cells(i, 1).Value
' 检查名称是否为空,并避免创建重复名称的工作表
If sheetName <> "" And Evaluate("ISREF('" & sheetName & "'!A1)") = False Then
' 创建新工作表
Sheets.Add After:=Sheets(Sheets.Count)
' 命名新工作表
ActiveSheet.Name = sheetName
Else
' 如果工作表已存在或名称为空,则打印消息(可选)
Debug.Print "Sheet named '" & sheetName & "' already exists or is empty."
End If
Next i
' 可选:清除消息窗口(如果使用了Debug.Print)
' MsgBox "Sheets created successfully!", vbInformation
End Sub
如图:
第四步:按 F5 键运行宏,或点击绿色小三角形运行,或关闭VBA编辑器,返回到Excel,并通过“开发工具”->“宏”,选择 CreateSheetsFromList 并运行它。
最后一步:另存启用宏的工作簿xml,这样就相当于你的宏是不依赖于某个具体的工作簿而单独存在,这样在其他工作簿中也可以使用这个宏,前提是这个宏工作簿是打开并且启用宏状态。
>>ctrl+s保存会弹出窗口,点击返回
>>选择需要保存的路径这台电脑>>选择Excel 启用宏的工作簿(*xlms)
>>点击保存
>>保存后是一个xlsm后缀的工作簿
在其他工作簿中使用示例
>>打开刚刚保存的xlsm宏工作簿(如果有提示是否启用宏,则点击是)
>>打开你需要处理的工作簿
>>在xlsm宏工作簿的sheet页A列从A2开始(A1是标题行)填入你需要创建的sheet页名称
>>在需要处理的工作簿中>>点击开发工具>>点击宏
>>在弹出的窗口中选择需要执行的宏文件>>点击执行
执行结果示例:
注意:xlsm宏文件中sheet1名称勿修改,因为脚本是根据名为"sheet1"中的A列从A2开始所包含的名称来创建的sheet页的
如果不想自己操作的宝子可以直接下载资源使用哈,在此文章顶部【批量创建sheet页.xlsm】(或者在博主的资源里下载)
标签:sheet,自定义,工作,创建,sheetName,点击,名称,Sheets,操作步骤 From: https://blog.csdn.net/2401_83100107/article/details/140346911