我正在寻找Excel VBA代码,以便在使用名称填充选项卡2中的表时自动复制工作簿中的选项卡1
需要VBA代码: 我在工作簿中有两个选项卡。表1(DIST“A”)是一个格式化的电子表格,表2(RFP)有一个表,表中有一列名为“Distributor”。当我在分发服务器列表下输入名称时,可能是1个或30个不同的网络名称,我希望VBA自动复制选项卡1,将复制的工作表重命名为我输入的任何名称,并将其发送到工作簿的末尾 这是我当前的代码,它复制了活动工作表,表2而不是表1(我需要的)我正在寻找Excel VBA代码,以便在使用名称填充选项卡2中的表时自动复制工作簿中的选项卡1,excel,vba,Excel,Vba,需要VBA代码: 我在工作簿中有两个选项卡。表1(DIST“A”)是一个格式化的电子表格,表2(RFP)有一个表,表中有一列名为“Distributor”。当我在分发服务器列表下输入名称时,可能是1个或30个不同的网络名称,我希望VBA自动复制选项卡1,将复制的工作表重命名为我输入的任何名称,并将其发送到工作簿的末尾 这是我当前的代码,它复制了活动工作表,表2而不是表1(我需要的) 子副本重命名工作表() 将ws设置为工作表 Set wh=工作表(ActiveSheet.Name) Active
子副本重命名工作表()
将ws设置为工作表
Set wh=工作表(ActiveSheet.Name)
ActiveSheet.Copy After:=工作表(Sheets.Count)
如果wh.范围(“A1”).值为“”,则
ActiveSheet.Name=wh.Range(“A1”).Value
如果结束
激活
端接头
除了BigBen提供的非常好的文档之外,您还可以查看
这一步一步的介绍应该更容易理解
基本上应该做以下几点:
将以下代码放入“RFP”工作表的sheet对象中(请参阅我链接的教程)。 用经销商列表中的范围替换“A1:A3”范围。当您输入new distributor时,将弹出一个带有distributor名称的消息框
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A3")) Is Nothing Then
Application.EnableEvents = False
MsgBox (Target.Value)
Application.EnableEvents = True
End If
End Sub
现在,编写代码复制工作表并将其名称更改为Target.Value,基本上您只需将其替换为MsgBox。第一步:将
Option Explicit
添加到模块顶部。您先声明ws
,然后设置wh
。下一步:查看事件。谢谢,我是VBA新手,所以我仍然不知道如何实现它。@Gunit继续阅读。有很多关于VBA和实现的文档,例如。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A3")) Is Nothing Then
Application.EnableEvents = False
MsgBox (Target.Value)
Application.EnableEvents = True
End If
End Sub