精华内容
下载资源
问答
  • 通过VBA遍历所有sheet并在第一页创建超链接很简单,网上已经提供了很多相关的例子,我在此列举一种最简单的,直接copy即可使用,如下: Sub lianjie() Dim x As Long x = 0 For x = 1 To Sheets.Count '从第四页...

    通过VBA遍历所有的sheet并在第一页创建超链接很简单,网上已经提供了很多相关的例子,我在此列举一种最简单的,直接copy即可使用,如下:

    Sub lianjie()

    Dim x As Long
    x = 0
    For x = 1 To Sheets.Count '从第四页开始

        Sheet1.Hyperlinks.Add Anchor:=Cells(x, 1),  _

        Address:=ActiveWorkbook.Name,    _

        SubAddress:=Sheets(x).Name & "!A1", _

        TextToDisplay:=Sheets(x).Name

    Next
    End Sub

    但是,正如大部分网上的教程,这种简单的创建链接并没有考虑到当sheet名字含有空格逗号句号等(,. )特殊符号时的情况,此时正常名字的sheet都会直接链接过去,但是含有特殊符号的sheet就会失败,显示“链接无效”!


    那么,终极大法来了,无视一切特殊符号,完美解决链接问题,代码如下(注意红色加粗部分):

    原因就是给页签名字加上单引号,这才是标准的做法,当不加的时候也可以识别,但是弊端就是含有特殊符号时会出现问题,所以建议大家始终按照第二种方案来解决。


    Sub lianjie()

    Dim x As Long
    x = 0
    For x = 1 To Sheets.Count '从第四页开始

        Sheet1.Hyperlinks.Add Anchor:=Cells(x, 1),  _

        Address:=ActiveWorkbook.Name,    _

        SubAddress:="'" & Sheets(x).Name & "'!A1", _

        TextToDisplay:=Sheets(x).Name

    Next
    End Sub


    展开全文
  • 利用VBA遍历Excel所有sheet的例子

    千次阅读 2015-12-11 17:47:00
    下面是利用VBA遍历Excel sheet的例子,可以用于Excel的批量处理。 Sub Insert_CodeString() Dim fs, ft As Object Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel....

    下面是利用VBA遍历Excel sheet的例子,可以用于Excel的批量处理。

    Sub Insert_CodeString()
    
    Dim fs, ft As Object
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    
    Dim Sql As String
        Sql = "truncate table code_string;" & Chr(10)
    Dim line As Integer
    
    Set fs = CreateObject("scripting.filesystemobject")
    Set ft = fs.createtextfile(ThisWorkbook.Path & "\" & "Insert_CodeString" & ".sql")
    
    Set xlBook = ThisWorkbook
    
    
    For x = 1 To xlBook.Sheets.Count
    
        Set xlSheet = xlBook.Sheets(x)
        
        If xlSheet.Cells(3, 1) = "代码编号" Then
    
            line = 8
            Sql = Sql & Chr(10) & Chr(10) & "--" & xlSheet.Cells(4, 2) & Chr(10)
            
            Do
                Sql = Sql & "Insert Into CODE_STRING ( CODE_TYPE,CODE_TYPE_DESC,CODE_VALUE,CODE_DESC,CODE_FLAG ) Values ( '" & xlSheet.Cells(3, 2) & "','" & xlSheet.Cells(4, 2) & "','" & xlSheet.Cells(line, 2) & "','" & xlSheet.Cells(line, 3) & "','1');" & Chr(10)
                line = line + 1
            Loop Until Len(xlSheet.Cells(line, 1).Value) = 0
            
        End If
        
    Next x
    
    Sql = Sql & Chr(10) & Chr(10) & "commit;" & Chr(10)
    
    ft.WriteLine (Sql)
    ft.Close
    
    Set ft = Nothing: Set fs = Nothing
    
    End Sub

     

    转载于:https://www.cnblogs.com/wanggs/p/5039778.html

    展开全文
  • VBA 遍历sheet

    千次阅读 2012-03-15 12:17:59
    Dim sht As Excel.Worksheet  For Each sht In ThisWorkbook.Worksheets  msgbox sht.name  Next 上面的红色部分不能使用sheets,有时候会报错!
        Dim sht As Excel.Worksheet
    
        For Each sht In ThisWorkbook. Worksheets
             msgbox sht.name

        Next


    上面的红色部分不能使用sheets,有时候会报错!


    展开全文
  •  '遍历所有工作表(sheet)  For i = 1 To ActiveWorkbook.Worksheets.Count  '下面这句,亦可以用ActiveWorkbook.Worksheets(i).Activate 进行替代,代表激活此工作表  ActiveWorkbook.Worksheets(i).Select...

    Private Declare PtrSafe Function timeGetTime Lib "winmm.dll" () As Long
    '封装延时函数
    Sub delay(T As Long)
        Dim time1 As Long
        
        time1 = timeGetTime
        Do
            DoEvents
        Loop While timeGetTime - time1 < T
    End Sub

    Sub 宏1()
        Dim i As Long, row_book As Long, column_book As Long
        
        '遍历所有工作表(sheet)
        For i = 1 To ActiveWorkbook.Worksheets.Count
            '下面这句,亦可以用ActiveWorkbook.Worksheets(i).Activate 进行替代,代表激活此工作表
            ActiveWorkbook.Worksheets(i).Select
            '获取此激活的工作表的行和列
            row_book = ActiveSheet.UsedRange.Rows.Count
            column_book = ActiveSheet.UsedRange.Columns.Count
            
            '选中所有数据,复制并粘贴为数值
            Range("A1:" & Cells(row_book, column_book).Address).Select
            Selection.Copy
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            Application.CutCopyMode = False
            
            '延迟2s 这里存粹是为了测试,看他有没有异常,实际运行中,上面的时间封装,和这个delay就可以不用了~
            delay (2000)
            Debug.Print (ActiveWorkbook.Worksheets(i).Name)
        Next
        
    End Sub

     

    截图如下:

    展开全文
  • VBA-遍历工作表的方法

    千次阅读 2020-02-24 15:50:13
    遍历工作表的方法 在工作中,经常需要遍历工作表,这里展示最基本的功能,查询工作表的个数,其余功能大同小异: #方法一 Sub test() Dim i As Integer Dim s As Integer For i = Worksheets.Count To 1 Step -1 ...
  • vba 获取所有sheet名称

    千次阅读 2021-05-18 19:45:50
    Sub Maco1() For i = 1 To Sheets.Count Cells(i, 1) = Sheets(i).Name Next End Sub
  • Sub photo() For Each shtInThisWorkbook.Sheets sht.DrawingObjects.DeleteNext End Sub
  • 今天项目上有个应用,获取指定Excel文件下的所有sheet的名称以及当前sheet中指定单元格的值,并把他们写到固定的sheet中去,看了下,文件比较多,而且每个文件sheet的个数比较多,也不一样,所以打算写个程序来帮...
  • 您暗示您的代码的早期版本会运行,但不会遍历工作表。原因是: MsgBox ActiveSheet.Name 这将显示活动工作表的名称,但此循环中的任何内容都不会更改活动工作表。 我对你的解决方案不满意,尽管它没有明显的错误。...
  • 今天项目上有个应用,获取指定Excel文件下的所有sheet的名称以及当前sheet中指定单元格的值,并把他们写到固定的sheet中去,看了下,文件比较多,而且每个文件sheet的个数比较多,也不一样,所以打算写个程序来帮...
  • I have a excel table with a autofilter.In the filtered table i only have few rows filtered.My objective is icterate all visible rows to colect data to copy to anothe sheet.I want a way to collect a va...
  • Excel VBA 遍历目录下所有文件

    千次阅读 2016-11-03 22:35:23
    For Each sht In Match.Sheets
  • Sub 遍历一个文件夹里的excel文件() Rem 用bat 怎么写? 'cd C:\VBA 'dir >1.txt '但是这样并没有把文件名给单独列出来? Rem 用python 怎么写? Dim a As Object Dim path path = ...
  • Sub test() n = Worksheets.Count For i = 1 To n Worksheets(i).Activate Macro1 Next End Sub Macro1是宏的名称 转载于:https://blog.51cto.com/zhaojie/2324622
  • Sub 遍历所有工作表_删除所有图片() Dim shp As Shape, sht As Worksheet Rem On Error Resume Next '忽略报错,防止有#N/A Rem 遍历所有工作表 For Each sht In Worksheets sht.Activate Rem 清除图形对象 ...
  • For i = 1 To RowCt Flag = UBound(Filter(arr, Sheet1.Cells(i, "B"))) 'Fliter作用是从中arr中筛选出B列的当前字符串,Ubound就是看数组的元素个数哈 '如果当前字符串在arr中,那么Flag=0。(等0是因为数组的第...
  • 本次所讲的遍历获取某文件夹下所有文件,其实是我的《每月自动汇总考勤数据》案例中的其中一个知识点,近期我将会集中将本案例中所有应用到的知识点逐一的写出来,最后汇总成一个真正可用的成品。 本案例中首要的...
  • VBA遍历单元格

    千次阅读 2013-11-27 15:17:00
    sheet.Shapes s.Delete i = i + 1 Next Next MsgBox " 已删除当前表中 " & i & " 形状 " End Sub   转载于:https://www.cnblogs.com/wangjixianyun/p/3445756.html
  • 文件夹下的所有扩展名为xls的excel文件,修改所有工作表字体为“微软雅黑”,以及鼠标默认选中A1单元格 'Path是参数,调用 openFiles 这个方法时传过来的文件夹路径 Sub openFiles(Path) Dim File As String Dim ...
  • 这里整合指把Sheet移动到一个workbook中。没有覆盖到子文件夹中的文件。Sub Test() Debug.Print (ThisWorkbook.Path) Dim p, stockcode As String Dim f p = ThisWorkbook.Path &amp; "\" f = Dir...
  • Excel VBA 遍历单元格 单元格读取

    万次阅读 2011-10-08 21:14:39
     For Each sheet In ActiveWorkbook.Sheets  For Each s In sheet.Shapes  s.Delete  i = i + 1  Next  Next  MsgBox "已删除当前表中 " & i & " 形状" End Sub ...
  • 最近在做水质分析数据录入的时候,需要根据监测井编号到多个excel表中查询该编号对应的井的水质分析数据,并将单口井的水质...这部分内容涉及的知识点有:多工作薄交叉复制、获取某一目录下所有excel工作薄、获取某一
  • VBA--遍历文件夹下所有文件--模板

    千次阅读 2019-03-27 17:57:53
    遍历文件夹下所有文件并输出文件名 Sub OpenAndClose() Dim MyFile As String Dim Arr(1000) As String Dim count As Integer MyFile = Dir("C:\Users\mikowoo\Desktop\EPSreport\result\" & "*.xlsx") ...
  • Private Sub Workbook_Open() Application.DisplayAlerts = False For Each sh In Me.Sheets If Me.Sheets.Count > 1 Then sh.Delete End If Next cp2workbook End Sub Sub cp2workbook() D
  • Excel VBA 根据Sheet2中的表格数据处理Sheet1中的数据,包括:1,对sheet1和sheet2指定数据的循环比较;2,符合条件的数据复制至sheet1中,并且用表格颜色进行标记
  • Sub 新增工作表_遍历现有所有工作表_用于核实首列数据_无视隐藏工作表() Dim i As Integer '新增工作表,并移动到第一个位置,用于写入核实首列数据 Worksheets.Add.name = "核实首列" Worksheets("核实首列")....
  • excel遍历行列的VBA参考

    万次阅读 2017-12-26 14:24:01
     For Each sheet In ActiveWorkbook.Sheets  For Each s In sheet.Shapes  s.Delete  i = i + 1  Next  Next  MsgBox "已删除当前表中 " & i & " 形状" End Sub ...
  • Sub VBA小程序_遍历所有工作表_取消隐藏所有行_列() Dim shp As Shape, sht As Worksheet Rem On Error Resume Next '忽略报错,防止有#N/A Rem 遍历所有工作表,取消隐藏行 + 列 For Each sht In Worksheets ...
  • 刚开始的时候,领导给了我一张excel表,她说每周都不定期更新,每次更新都是复制粘贴,不但容易出错,而且要花费2个多小时,然后她问我,你在下班时间可以考虑怎么用脚本如python,或VBA把这个东西做批量化处理,...
  • Sub huizongdata() rows("3:10000").Clear '第一步是先清空汇总表的数据,...For Each st In Worksheets '循环开始,遍历所有的工作表 If st.Name <> ActiveSheet.Name Then ' 若遍历的当前工作表不是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,087
精华内容 434
关键字:

vba遍历所有sheet