Excel中,使用VBA以某一单元格内容命名工作表

我自己写的一部分代码如下,但执行有问题,不知道应该如何写:
需要实现的功能是:
1. 使用每个表中的"G4"单元格内容命名工作表;
2. 错误处理:工作表名重复时命名为"工作表名(1)",工作表名为空格时自动命名为"工作表(i)"
请VBA高手指正,谢谢.

Sub change()
For i = 1 To ActiveWorkbook.Worksheets.Count
n = Worksheets(i).Range("G4").Value
if n="" then
xxxxxxx(不知道如何写了)
end if
Worksheets(i).Name = n
Next
End Sub

工具/材料:Microsoft Office Excel2007版,Excel表格。 

1、首先选中Excel表格,双击打开。 

2、然后在该界面中,选中要以某一单元格内容命名的工作表,右键点击“查看代码”。

3、再者在该界面中,输入VBA代码“Sub 更改名称度() Dim mYn As String mYn = Cells(1, 1) ActiveSheet.Name = mYn End Sub”。 

4、其次在该界面中,点击“执行”按钮。 

5、、最后在该界面中,成功以某一单元格内容命名工作表。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-06

用万能的VBA可以实现。

例如在A1单元格输入“我的工作表",然后将当前工作表名替换为”我的工作表"。代码如下:

Sub 更改名称()

Dim mYn As String

mYn = Cells(1, 1)

ActiveSheet.Name = mYn

End Sub

程序执行前如图:

点击宏,选择更改名称宏-执行。如图:

执行后结果如图。

第2个回答  2011-08-30
Sub change()
For i = 1 To ActiveWorkbook.Worksheets.Count
n = Worksheets(i).Range("G4").Value
if n="" then
Msgbox “单元格空" '提示一下但不作操作,或者按照你的需要再修改
Else
ActiveWorkbook.Worksheets(i).Name = n
End if
Next
End Sub

'注意单元格内不能有非法字符,如“/”,否则会出错
第3个回答  推荐于2017-09-17
sub change
dim i as integer, j as integer
dim nam as string
for i=1 to thisworkbook.sheets.count
nam=worksheets(i).range("G4")
for j=1 to worksheets(j)
if worksheets(j).name=nam then
worksheets(i).name="工作表("& i & ")
else
worsheets(i)=nam
end if
next
next
end sub本回答被提问者采纳
第4个回答  2011-08-30
Sub change()
For i = 1 To ActiveWorkbook.Worksheets.Count
n = Worksheets(i).Range("G4").Value
if n<>"" then
Worksheets(i).Name = n
end if
Next
End Sub

Warning: Invalid argument supplied for foreach() in /www/wwwroot/www.t2y.org3v3b34/skin/templets/default/contents.html on line 47
相似回答