ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 239|回复: 7

[求助] 代码运行两次才可执行

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-3-14 11:46 | 显示全部楼层 |阅读模式
代码运行两次才可以运行,老师给看看怎么回事,另外我只想冻结目录工作表其他工作表正常就可以

新建 Microsoft Excel 工作表.zip

46.17 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2024-3-14 12:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
把冻结命令从函数移到过程中去,

  1. Sub 创建目录()
  2.     Dim sht As Worksheet
  3.      If Not ShtExists("目录") Then
  4.         Set sht = Sheets.Add(before:=Sheets(1))
  5.         sht.Name = "目录"
  6.         With ActiveWindow
  7.         .SplitColumn = 0
  8.         .SplitRow = 2
  9.         .FreezePanes = True
  10.         End With
  11.     Else
  12.         Set sht = Sheets("目录")
  13.          sht.Activate
  14.           With ActiveWindow
  15.         .SplitColumn = 0
  16.         .SplitRow = 2
  17.         .FreezePanes = True
  18.         End With
  19.     End If
  20.     sht.[A1] = "序号"
  21.     sht.[B1] = "目录"
  22.     sht.[2:10000].ClearContents
  23.     For i = 2 To Sheets.Count
  24.         sht.Cells(i, 1) = i - 1
  25.         sht.Cells(i, 2) = Sheets(i).Name
  26.         '主表添加超链接
  27.         sht.Hyperlinks.Add Anchor:=sht.Cells(i, 2), Address:="", SubAddress:= _
  28.         "'" & Sheets(i).Name & "'!A1", TextToDisplay:=Sheets(i).Name
  29.         '子表添加返回超链接
  30.               If Sheets(i).Range("A1") = "" Or Sheets(i).Range("A1") = "返回目录" Then
  31.             Sheets(i).Hyperlinks.Add Anchor:=Sheets(i).Range("A1"), Address:="", SubAddress:= _
  32.                 "目录!B" & i, TextToDisplay:="返回目录"
  33.         Else
  34.              Sheets(i).Select
  35.              Sheets(i).Columns(1).Select
  36.              Selection.Insert Shift:=xlToRight
  37.             Sheets(i).Hyperlinks.Add Anchor:=Sheets(i).Range("A1"), Address:="", SubAddress:= _
  38.                 "目录!B" & i, TextToDisplay:="返回目录"
  39.         End If
  40.     Next
  41.     Range("A:A,B1").HorizontalAlignment = xlCenter                                               'A列B1水平对齐
  42.     Range("A1:B1").Font.Bold = True                                                               '设置A1:B1单元格的字体为加粗
  43.     ActiveSheet.Columns("b:b").AutoFit
  44.     Range("A1:B" & Cells(Rows.Count, 1).End(xlUp).Row).Borders.LineStyle = xlContinuous           '添加边框
  45.     Range("B2:B200").Font.Underline = xlUnderlineStyleNone                                        '去除超链接下划线
  46. End Sub
  47. Function ShtExists(shtname)
  48.     '判断Sheet表是否存在
  49.     On Error Resume Next
  50.      Dim s
  51.     Err.Clear
  52.     s = Sheets(shtname & "").Name
  53.     If Err.Number = 0 Then
  54.         ShtExists = True
  55.     Else
  56.         ShtExists = False
  57.     End If
  58. End Function
复制代码


TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-14 12:32 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
维叶 发表于 2024-3-14 12:14
把冻结命令从函数移到过程中去,

谢谢老师,我看看

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-14 14:09 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 朱付安 于 2024-3-14 14:17 编辑
维叶 发表于 2024-3-14 12:14
把冻结命令从函数移到过程中去,


老师,这个代码还是得运行两次,才能达到我想要的效果,两次的运行结果不同

TA的精华主题

TA的得分主题

发表于 2024-3-14 14:27 | 显示全部楼层
我试了不用两次啊,

你想要的效果是,只想冻结目录工作表,其他工作表正常就可以?

创建目录及链接0314.rar

53.37 KB, 下载次数: 2

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-14 14:30 来自手机 | 显示全部楼层
维叶 发表于 2024-3-14 14:27
我试了不用两次啊,

你想要的效果是,只想冻结目录工作表,其他工作表正常就可以?

是的老师,我再试试您的这个

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-14 14:34 来自手机 | 显示全部楼层
维叶 发表于 2024-3-14 14:27
我试了不用两次啊,

你想要的效果是,只想冻结目录工作表,其他工作表正常就可以?

好了老师,刚才是真奇怪,谢谢

TA的精华主题

TA的得分主题

发表于 2024-3-14 14:36 | 显示全部楼层
参与一下,供测试

新建 Microsoft Excel 工作表.rar

56.74 KB, 下载次数: 2

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 06:20 , Processed in 0.042957 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表