有没有办法让工作表中的某个单元格内容与工作表名称自动保持一致?
要求:假定单元格"A1"为监视单元格,当工作表名称由"sheet1"的改变为"模板"后"A1"内容也自动变为"模板"谢谢多谢举人、大魔法师先生,对VBA本人道行尚浅实在不...
要求:
假定单元格"A1"为监视单元格,当工作表名称由"sheet1"的改变为"模板"后"A1"内容也自动变为"模板"
谢谢
多谢举人、大魔法师先生,对VBA本人道行尚浅实在不知如何操练。定义名称的方法我试过了,可以工作。但可能未说明清楚,这个方法的实际效果只能监视第一页的工作表名称,但不是当前工作表的。我需要的是跟踪当前工作表名称的方法。请不吝赐教谢谢 展开
假定单元格"A1"为监视单元格,当工作表名称由"sheet1"的改变为"模板"后"A1"内容也自动变为"模板"
谢谢
多谢举人、大魔法师先生,对VBA本人道行尚浅实在不知如何操练。定义名称的方法我试过了,可以工作。但可能未说明清楚,这个方法的实际效果只能监视第一页的工作表名称,但不是当前工作表的。我需要的是跟踪当前工作表名称的方法。请不吝赐教谢谢 展开
5个回答
展开全部
1.
定义"工作表"
工作表=MID(GET.WORKBOOK(1),FIND("]",GET.WORKBOOK(1))+1,LEN(GET.WORKBOOK(1)))
或者:
工作表=RIGHT(GET.WORKBOOK(1),LEN(GET.WORKBOOK(1))-FIND("]",GET.WORKBOOK(1)))
输出全部工作表,公式为:
=INDEX(工作表,ROW(1:1))
输出全部工作表并建立链接,公式为:
=HYPERLINK("#"&INDEX(工作表,ROW(1:1))&"!a1",INDEX(工作表,ROW(1:1)))
2.
用工作表中的值命名工作表
Sub 引用单元格数据命名工作表()
On Error Resume Next 'ignore
Application.Calculation = xlCalculationManual 'Manual
Dim i%
For i = 1 To Sheets.Count
Sheets(i).Name = Cells(i, 1).Text
Next
Application.Calculation = xlCalculationAutomatic 'Auto
End Sub
其中,更改代码“For i = 1 To Sheets.Count”中的1的值为2,可从第二个工作表开始重命名;更改代码“Sheets(i).Name = Cells(i, 1).Text”中1的值为2,可从B列中提取单元格数值。
3.
用代码
Sub 引用工作表命名()
For i = 1 To Sheets.Count
Cells(i, 1) = Sheets(i).Name
Next
End Sub
其中,更改代码“For i = 1 To Sheets.Count”中的i值为2,可从第二个工作表开始引用工作表命名,如同时将代码“Cells(i, 1) = Sheets(i).Name”更改为“Cells(i-1, 1) = Sheets(i).Name”,则从A1开始引用工作表命名。
定义"工作表"
工作表=MID(GET.WORKBOOK(1),FIND("]",GET.WORKBOOK(1))+1,LEN(GET.WORKBOOK(1)))
或者:
工作表=RIGHT(GET.WORKBOOK(1),LEN(GET.WORKBOOK(1))-FIND("]",GET.WORKBOOK(1)))
输出全部工作表,公式为:
=INDEX(工作表,ROW(1:1))
输出全部工作表并建立链接,公式为:
=HYPERLINK("#"&INDEX(工作表,ROW(1:1))&"!a1",INDEX(工作表,ROW(1:1)))
2.
用工作表中的值命名工作表
Sub 引用单元格数据命名工作表()
On Error Resume Next 'ignore
Application.Calculation = xlCalculationManual 'Manual
Dim i%
For i = 1 To Sheets.Count
Sheets(i).Name = Cells(i, 1).Text
Next
Application.Calculation = xlCalculationAutomatic 'Auto
End Sub
其中,更改代码“For i = 1 To Sheets.Count”中的1的值为2,可从第二个工作表开始重命名;更改代码“Sheets(i).Name = Cells(i, 1).Text”中1的值为2,可从B列中提取单元格数值。
3.
用代码
Sub 引用工作表命名()
For i = 1 To Sheets.Count
Cells(i, 1) = Sheets(i).Name
Next
End Sub
其中,更改代码“For i = 1 To Sheets.Count”中的i值为2,可从第二个工作表开始引用工作表命名,如同时将代码“Cells(i, 1) = Sheets(i).Name”更改为“Cells(i-1, 1) = Sheets(i).Name”,则从A1开始引用工作表命名。
展开全部
可以,但是要用vba.代码如下:
Private Sub Worksheet_Activate()
Dim sh As Worksheet
Dim a As Integer
Dim R As Integer
R = Range("A65536").End(xlUp).Row
a = 1
If Cells(1, 1) <> "" Then
Range("A2:A" & R).ClearContents
End If
For Each sh In Worksheets
If sh.Name <> ActiveSheet.Name Then
Cells(a, 1).Value = sh.Name
a = a + 1
End If
Next
End Sub
显示所有非自己表格的单元格名字,改名后跟着变.如果需要点击后打开相应的表格也可以做到,加几行代码就行了,需要就Hi我一下.
Private Sub Worksheet_Activate()
Dim sh As Worksheet
Dim a As Integer
Dim R As Integer
R = Range("A65536").End(xlUp).Row
a = 1
If Cells(1, 1) <> "" Then
Range("A2:A" & R).ClearContents
End If
For Each sh In Worksheets
If sh.Name <> ActiveSheet.Name Then
Cells(a, 1).Value = sh.Name
a = a + 1
End If
Next
End Sub
显示所有非自己表格的单元格名字,改名后跟着变.如果需要点击后打开相应的表格也可以做到,加几行代码就行了,需要就Hi我一下.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
插入-名称-定义,定义名称:
工作表=REPLACE(GET.WORKBOOK(1),1,FIND("]",GET.WORKBOOK(1)),)&T(NOW())
则在A1输入以下公式即取得当前表名称
=工作表
工作表=REPLACE(GET.WORKBOOK(1),1,FIND("]",GET.WORKBOOK(1)),)&T(NOW())
则在A1输入以下公式即取得当前表名称
=工作表
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
=RIGHT(CELL("filename",$A$1),LEN(CELL("filename",$A$1))-FIND("]",CELL("filename",$A$1)))
子易空间站 - Excel培训专家
子易空间站 - Excel培训专家
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,99)
追问:
您好,我用了一下该代码,可以达到我想要的效果,复制或移动后改任意工作表的名称其他工作表不受影响,我看了一下,是不是若想将内容放在F2中,就将A1改为F2,另外的,您能说一下这个代码是什么意思吗?后面的+1,99分别是什么意思??99是代表99个工作表吗?可以再多吗?
追答:
CELL("filename",A1)
返回A1所在工作表的从磁盘盘符开始到工作表名称结束的字符串.
像这样 C:\Documents and Settings\Administrator\桌面\[Sample.xls]Sheet1
find找到"]"在这个字符串中的位置.
mid从该位置的下一位开始向右取99个字符. 工作表名称最多20个字符,所以这个数字只要大于等于20即可,用99是为了输入方便.
追问:
您好,我用了一下该代码,可以达到我想要的效果,复制或移动后改任意工作表的名称其他工作表不受影响,我看了一下,是不是若想将内容放在F2中,就将A1改为F2,另外的,您能说一下这个代码是什么意思吗?后面的+1,99分别是什么意思??99是代表99个工作表吗?可以再多吗?
追答:
CELL("filename",A1)
返回A1所在工作表的从磁盘盘符开始到工作表名称结束的字符串.
像这样 C:\Documents and Settings\Administrator\桌面\[Sample.xls]Sheet1
find找到"]"在这个字符串中的位置.
mid从该位置的下一位开始向右取99个字符. 工作表名称最多20个字符,所以这个数字只要大于等于20即可,用99是为了输入方便.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询