有没有办法让工作表中的某个单元格内容与工作表名称自动保持一致?

要求:假定单元格"A1"为监视单元格,当工作表名称由"sheet1"的改变为"模板"后"A1"内容也自动变为"模板"谢谢多谢举人、大魔法师先生,对VBA本人道行尚浅实在不... 要求:
假定单元格"A1"为监视单元格,当工作表名称由"sheet1"的改变为"模板"后"A1"内容也自动变为"模板"
谢谢
多谢举人、大魔法师先生,对VBA本人道行尚浅实在不知如何操练。定义名称的方法我试过了,可以工作。但可能未说明清楚,这个方法的实际效果只能监视第一页的工作表名称,但不是当前工作表的。我需要的是跟踪当前工作表名称的方法。请不吝赐教谢谢
展开
 我来答
心李说今晚看啥

2015-08-16 · 遇见即改变,期待与你相遇
心李说今晚看啥
采纳数:6567 获赞数:49880

向TA提问 私信TA
展开全部
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开始引用工作表命名。
zlhiu
2009-11-18 · TA获得超过173个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:213万
展开全部
可以,但是要用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我一下.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappb4ejU1yWLgJRF
2009-11-18 · TA获得超过1043个赞
知道小有建树答主
回答量:1020
采纳率:0%
帮助的人:619万
展开全部
插入-名称-定义,定义名称:
工作表=REPLACE(GET.WORKBOOK(1),1,FIND("]",GET.WORKBOOK(1)),)&T(NOW())
则在A1输入以下公式即取得当前表名称
=工作表
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qad1103
2009-11-18 · TA获得超过1441个赞
知道大有可为答主
回答量:1180
采纳率:100%
帮助的人:1016万
展开全部
=RIGHT(CELL("filename",$A$1),LEN(CELL("filename",$A$1))-FIND("]",CELL("filename",$A$1)))

子易空间站 - Excel培训专家
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2020-12-09 · TA获得超过3万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:530万
展开全部
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是为了输入方便.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式