我是VB的新手,需要一些帮助。我有一张excel 2013工作簿,有2张。 Sheet1是员工姓名列表(列A有20个名称),dob(列B)等,Sheet2是空白评估表。我需要一个代码,它将复制整个Sheet2(空白表单)并粘贴到一个新的Sheet3中,并将EmpName从row1拉到Sheet3(D4)上的指定单元格,与DOB(J4)相同,等等。我需要它为Sheet1上的每个名称重复此过程。最终目标是以评估的形式提供包含20张工作簿的工作簿,每个工作簿一个。如果此代码可以将选项卡命名为员工姓名,那也是非常好的。这可能吗?我在网上广泛搜索,找不到合适的东西。
这是我目前的代码。就像我说的,我是VBA的新手。代码从员工列表创建新工作表,并复制数据,但现在我需要它还复制整个sheet2(eval表单),并将数据(名称单元格A1从员工列表)放入sheet3中的表单(新工作表) )在单元格D4中。
Sub CreateSheetsFromEmployeeList()
Dim nameSource
Dim nameColumn
Dim nameStartRow As Long
Dim nameEndRow As Long
Dim employeeName As String
Dim newSheet As Worksheet
nameSource = "Ayre"
nameColumn = "A"
nameStartRow = 2
nameEndRow = Worksheets(nameSource).Cells(Rows.Count, nameColumn).End(xlUp).Row
Do While (nameStartRow <= nameEndRow)
employeeName = Sheets(nameSource).Cells(nameStartRow, nameColumn)
employeeName = Trim(employeeName)
If (employeeName <> vbNullString) Then
On Error Resume Next 'do not throw error
Err.Clear 'clear any existing error
Sheets(employeeName).Name = employeeName
If (Err.Number > 0) Then
Err.Clear
On Error GoTo -1
Set newSheet = Sheets.Add(After:=Sheets(Sheets.Count))
newSheet.Name = employeeName
Sheets(nameSource).Activate
LastCol = ActiveSheet.Cells(nameStartRow, Application.Columns.Count).End(xlToLeft).Column
Range(Cells(nameStartRow, 1), Cells(nameStartRow, LastCol)).Select
Selection.Copy
Sheets(employeeName).Activate 'NEW
Sheets(employeeName).Cells(1, "A").PasteSpecial
[a1].Select 'NEW
Application.CutCopyMode = False
Sheets(employeeName).Columns("A:K").AutoFit
End If
End If
nameStartRow = nameStartRow + 1
Loop
End Sub
答案 0 :(得分:0)
答案 1 :(得分:0)
此代码演示了您需要的基本原则:
.sidenav-overlay{opacity: 0;}