ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

   
高效办公必会的Office实战技巧 永久免费,网表让Excel秒变数据库 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! 国内首部Excel函数公式学习大典 职场充电黑科技, Office微视频教程 免费下载Excel行业应用视频
300集Office 2010微视频教程 Tableau-数据可视化工具 突破Excel限制,用活字格提高效率 12门Excel免费公开课任你学
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 免费的Excel考勤计算系统
查看: 202|回复: 10

[求助] 根据单元格内容打开或者新建工作表!!!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-8-12 13:45 | 显示全部楼层 |阅读模式
大家好,我想通过M1和S1中的年月选择,如果工作表已经存在所选择的名称,直接打开。如果没有则创建名称格式为“2017年10月”的工作表!我写了一些代码,请大家帮我分析一下,谢谢!!!
Untitled.png

New Microsoft Excel 工作表 (2).rar

11.62 KB, 下载次数: 8

附件

TA的精华主题

TA的得分主题

发表于 2017-8-12 14:29 | 显示全部楼层
楼主究竟是要工作表还是工作簿,具体说明

TA的精华主题

TA的得分主题

发表于 2017-8-12 14:31 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-8-12 15:18 | 显示全部楼层
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim i As Integer
   Dim sh As Worksheet
   For i = 1 To ThisWorkbook.Sheets.Count
      If Worksheets(i).Name = ActiveSheet.Range("M1") & "年" & ActiveSheet.Range("S1") & "月" Then
         Worksheets(i).Active
      Else
         Worksheets.Add
         ActiveSheet.Name = ActiveSheet.Range("M1") & "年" & ActiveSheet.Range("S1") & "月"
      End If
   Next
End Sub

这个是代码,保存一下,重新打开就没有了。。。。

TA的精华主题

TA的得分主题

发表于 2017-8-12 15:20 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-8-12 15:21 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-8-12 15:25 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-8-12 15:29 | 显示全部楼层
本帖最后由 gdw831001 于 2017-8-12 15:30 编辑

复制代码
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 1 And Target.Column = 19 Then
        MsgBox "语句"
    End If
End Sub

TA的精华主题

TA的得分主题

发表于 2017-8-12 15:49 | 显示全部楼层
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     Dim i As Integer
  3.     Dim sh As Worksheet
  4.     If Target.Row = 1 And Target.Column = 19 Then
  5.         For i = 1 To ThisWorkbook.Sheets.Count
  6.             If Worksheets(i).Name = ActiveSheet.Range("M1") & "年" & ActiveSheet.Range("S1") & "月" Then
  7.                 Worksheets(i).Select
  8.                 Exit Sub
  9.             End If
  10.         Next
  11.         Worksheets.Add
  12.         ActiveSheet.Name = Sheet2.Range("M1") & "年" & Sheet2.Range("S1") & "月"
  13.     End If
  14. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-8-12 16:09 | 显示全部楼层

非常感谢你的回答,这样写可以!
我试验了一下,代码只能放到某一个sheet下边。
我想问一下,可不可以让这个代码在当前激活的sheet中运行呢?不要只在某一个特定的sheet中,谢谢你!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

关注官方微信,每天坐享新鲜教程

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

GMT+8, 2017-12-19 00:50 , Processed in 1.099208 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Wooffice Inc.

   

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

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

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