作者:乔山办公网日期:
返回目录:excel表格制作
要做一个跨工作簿百的查找,现在呢,我查找和被查找的两个工作簿的切换是靠"Workbooks(1)"和"Workbooks(2)”来切度换的,workbooks(1)就代表第一个工知作表,workbook(2)代表通道过"Application.GetOpenFilename”方法打开的第二个工作表。
现在问题是,我运行的时候只能在一个工作簿的情况下才能正常运行,否回则就会出错答。所以我需要知道当前工作簿排在第几个~
Sub test()
Dim a As String
a = Application.GetOpenFilename
Set wb1 = Workbooks.Open(a)
wb1.Worksheets(1).Range("a1").Value = "haha"
End Sub
用工作zd表事件,当AAA或者回BBB被激活时,就操作答CCC
sub ()
dim currentsheet as worksheet
set currentsheet=activesheet
if currentsheet.name="AAA" or currentsheet.name="BBB" then
worksheets("CCC").range("B2").value="xxx"
worksheets("CCC").range("B2").interior.color=65535
end if
end sub
1.
一步搞定之代码
Sub 提取所有工作表名称()
for x=1 to sheets.count
cells(x,1)=sheets(x).name
next x
End Sub
如图,按照顺序来就可以啦。
方法/步骤
1.分步阅读
首先我们打开一个工作样表作为例子。
2.
工作表标签名即是工作表的名称,在指定激活当前工作表时,可以使用worksheets(“工作表名称”)的方法来指定。我们这里可以使用vba来获取这个名称。
3.
我们使用alt+f11组合快捷键进入vbe编辑器,插入一个新的模块,并在模块中输入以下代码:
Sub Delete_EmptySheets()
Dim sh As String
sh = Worksheets(1).Name
MsgBox sh
End Sub
4.
运行这段代码后,就可以获得5月工资这个工作表的名称。并将这个名称赋予了sh这个变量。我们就可以使用这个变量来指定工作表。
5.
这里我们需要注意的是,worksheets()使用工作表名称来指定工作表的时候字符串必须使用“”括住e799bee5baa6e58685e5aeb9339,而使用变量时则不需要,如果用“”括住变量,那么变量会被识别为字符串而出错。
6.
修改名称我们可以直接使用worksheets().name= 的方式进行改名。修改的名称如果使用变量赋值,则不需要“”括住,如果是直接输入,则同样需要以字符串的方式。
thisworkbook.Name '当前运行的工作簿名
工作簿1
thisworkbook.ActiveSheet.Name '当前运行工作簿的活动的工作表名
Sheet1