工作表“ ABC-01”上的单元格值是从同一工作簿中“员工”工作表上的单元格“ B2”中提取的。 使用VBA,我希望将以编程方式创建的新工作表的“ B2”单元格引用更改为“ X”-其中“ X”是在创建过程中选择的行(如果可以的话)。
我有一本工作簿,用于记录员工的工作时间。 在“员工”工作表的A列中,包含唯一的员工编号,在B,C,D等列中,包含其姓名,地址,电话等。“员工”工作表用作源数据。
每个员工在工作簿中都有一个单独的工作表(约160名员工),该工作表将作为“出勤卡”,以记录工作时间。该工作表将根据其唯一的员工编号来命名。
为了减少错误并尽可能地实现自动化,我希望执行以下操作:
到目前为止我所拥有的:
我有第一部分和第二部分工作。 这是我在网上找到的代码-
Public Sub CopyTemplateAndRename()
Dim newName As String
On Error Resume Next
newName = InputBox("Enter the name for the copied worksheet", "Copy worksheet", ActiveCell.Value)
If newName <> "" Then
Worksheets("Template").Copy Before:=Worksheets("Template")
On Error Resume Next
ActiveSheet.Name = newName
End If
End Sub
这似乎很好,并且允许我为员工创建新的工作表(从模板复制),并将新工作表重命名为“ ABC-01”(或在工作表中选择的唯一员工编号)员工工作表)
但是,问题出在第3部分。
创建考勤卡模板时,显示员工姓名,地址等的单元格将从“员工”工作表上的第一位员工中拉出,因为这是用于测试的内容。
例如,考勤卡工作表上“ John Appleseed”的单元格D4带有=Employees!B2
来显示他的名字。
但这对其他员工不利。在为另一位员工创建新工作表时,我需要更改源单元格。
因此,在“雇员”工作表上的160名雇员的列表中,如果我选择单元格A23,其中包含雇员'John Doe'的唯一雇员编号“ DOE-01” ..我需要将单元格D4更改为{创建新的John Doe的考勤卡工作表中的{1}}。
这怎么办?我很高兴继续使用VBA(我认为这是要走的路),但是我是VBA的初学者,可能需要一些帮助。 感谢您的帮助。