精华内容
下载资源
问答
  • VBA 在行中循环遍历的例子

    千次阅读 2020-01-12 10:13:56
    在单元格区域对象中循环: For Each c In Range("$A$2:$A$" & Cells(Rows.count, "A").End(xlUp).row ‘do something ...那要如何操作才能既快速,又能按行的要求进行循环遍历呢?答案是:使用数组替...

    在单元格区域对象中循环:
    For Each c In Range("$A$2:$A$" & Cells(Rows.count, "A").End(xlUp).row
        ‘do something
    Next c

    基于上述代码运行后,你会发现,少量数据处理上还行,但大量数据之后,电脑卡慢,用时较长等缺点就出来了。
    那要如何操作才能既快速,又能按行的要求进行循环遍历呢?
    答案是:使用数组替代对象,然后在数组中循环。

     

    使用将单元格区域对象的值装入数组,在数组中循环:

    Dim i As Long
    Dim varray As Variant
    varray = Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row).Value
    For i = 1 To UBound(varray, 1)
        ' do something
    Next

     

    下面是一个完整的例子,此示例仅在列A中符合条件的每个行之后插入一行。在行中,从A2开始,插入期间将+2”添加到变量i中。如果我们用A1启动我们的数组,它将为+1。

    Sub test()
    Dim varray As Variant
    Dim i As Long
    varray = Range("A2:A10").Value
    '必须倒序循环
    For i = UBound(varray, 1) To LBound(varray, 1) Step -1
        '此处放置你自己的条件判断代码等
        If varray(i, 1) = "moo" Then
                Range("A" & i + 2).EntireRow.Insert
        End If
    Next
    End Sub

    展开全文
  • For i = MinRow To RetMaxRow - 1 '循环每一行  For j = MinCol To MaxCol - 1 '循环每一列  If Trim(Cells(i, j).Value) = "" Then '判断必填数据是否填写  MsgBox "必填数据"  Cells(i, j).Select  ...

    '检测数据按钮方法,如果检测通过,则保存按钮可用
    Private Sub CheckData_Click()
    GetMaxRow     '首先得到实际数据的最大有效行数
    If RetMaxRow = MinRow Then
        MsgBox "没有任何有效数据"
        Exit Sub
    End If
    For i = MinRow To RetMaxRow - 1     '循环每一行
        For j = MinCol To MaxCol - 1    '循环每一列
            If Trim(Cells(i, j).Value) = "" Then   '判断必填数据是否填写
                MsgBox "必填数据"
                Cells(i, j).Select
                Exit Sub
            End If
           
        Next
    Next                '数据检测通过,给出提示,并使保存按钮可用
    MsgBox "数据效验通过"
    SaveData.Enabled = True

    End Sub

    转载于:https://www.cnblogs.com/yuanweisen/archive/2009/01/06/1370500.html

    展开全文
  • 由于之后的需求又升级为找脚本方面需要具有适用性,即脚本位于的文件夹的层级不确定,也就是说脚本的位置不确定,经过网上资料的查询即自我的构思,最后写下这篇遍历文件夹下所有的你需要的文件,闲话少说,进入正题...

    之前接了一个需求,需要将查询一个大文件夹下所有的脚本中是否包含某一个字符串,大文件夹下的第二层为众多小文件夹,每一个小文件夹下又还有文件夹,所要的脚本位于文件夹的最底层。

    接到这个需求的时候我就考虑我要满足的两个部分,一个是查询脚本(最终目的),另一个是找到脚本(必然过程)。
    由于之后的需求又升级为找脚本方面需要具有适用性,即脚本位于的文件夹的层级不确定,也就是说脚本的位置不确定,经过网上资料的查询即自我的构思,最后写下这篇遍历文件夹下所有的你需要的文件,闲话少说,进入正题。

    先设置一个场景:现在有一个文件夹test,其下有两个子文件夹A,B,A中有一些TXT文本,B中有我们所需要的一个pl脚本,现在我们来开始进行查询取得pl脚本中的内容。

    Sub  findfileway()
         
          dim fso,folder,fds,fd   '设置变量
          Dim beginfile   '设置最外层文件夹路径
          Dim folderway  '当前路径
          Dim filename '设置文件夹/文件名称
          Dim myfile  '定位文件
          set fso=createobject("scripting.filesystemobject") 
          '建立文件系统对象变量
          set folder=fso.getfolder(beginfile)
          '获得文件夹
          set fds=folder.subfolders   '路径下的子文件夹集合
          For each fd in fds 
               
               filename=fd.name  '将名字赋予filename
               folderway=(beginfile+"\"+filename)
               myfile=dir(folderway+"\*.pl")  '定位查询文件夹A下是否含有pl脚本,为空则没有
               if myfile <>"" then 
                    
               Else
               
               End if
               
          
          Next  '进行循环test下一个文件夹B
     End sub
    

    至此我们可以完成第二级文件夹的循环遍历,并在其下中查询出需要的pl脚本,但pl脚本并不是只位于第二级文件夹或者是位于更多级之后的文件夹中,这样我们就需要循环调用这个方法来完成我们的需求。接下来进行之后的代码编写,位于end if之后next之前。

        '继续遍历子文件夹
        folderway=(folderway+"\"+filename)
        dim folder5,fds2,fd2
        set folder5= fso.getfolder(beginfile)
        set fds2=folder5.subfolders
        For each fd2 in fds2  '循环遍历下一级文件夹
             myfile=dir(folderway+"\*.pl)
             If (myfile<>"" and filename <>"")or (fd2<>"")then
                  call findfileway()
             else
             End if
        Next
    

    这部分代码都位于findfileway中,多次调用自己本身即可达到循环遍历多级文件夹的效果直到找到自己需要的文件。这段代码中最重要的是那个判断,判断是否还有下一级子文件夹,如果有就进行遍历。
    以上就是全部的思路及代码,如有问题欢迎提问我会尽量解答。

    展开全文
  • vba遍历列数据

    千次阅读 2020-10-09 14:10:13
    Sub funcff() Dim i, j, l, o, d, h l = Columns.Count l = 21 j = 2 o = 22 d = 4 h = 20 For i = 1 To l Cells(h, j).Select j = j + 7 Selection.Copy Cells(o, 1).Select ActiveSheet.Paste ...o = o +

    Sub funcff()

    Dim i, j, l, o, d, h
    l = Columns.Count
    l = 21
    j = 2
    o = 22
    d = 4
    h = 20
    For i = 1 To l

    Cells(h, j).Select
    j = j + 7
    Selection.Copy

    Cells(o, 1).Select

    ActiveSheet.Paste

    Cells(h, d).Select
    d = d + 7
    Selection.Copy
    Cells(o, 2).Select
    o = o + 1
    ActiveSheet.Paste

    Next


    End Sub

     

     

    Sub funcff2()

    Dim i, j, l, o, d, h
    l = Columns.Count
    l = 21
    j = 2
    o = 22
    d = 4
    h = 21
    For i = 1 To l
    Cells(h, j) = Cells(h, j) - Cells(17, j)

    Cells(h, j).Select
    j = j + 7
    Selection.Copy

    Cells(o, 1).Select

    ActiveSheet.Paste

    Cells(h, d) = Cells(h, d) - Cells(17, d)
    Cells(h, d).Select
    d = d + 7
    Selection.Copy
    Cells(o, 2).Select
    o = o + 1
    ActiveSheet.Paste

    Next


    End Sub

    展开全文
  • 循环获取的代码如下,界面中包含了 N个GroupBox ,N 个CheckBox,如遇到GroupBox那么循环跳入继续找CheckBox,直接完成遍历 查找到所有打勾的CheckBox名字 最后 返回 Sub SearchControls(ByRef rControls, ByRef ...
  • VBA遍历文件夹的三种方法(转载)

    万次阅读 2018-02-01 12:45:37
    ">VBA遍历文件夹常用有三种方法,这三种方法中,filesearch不适合2007和2010版本,而且速度比较慢,递归法速度也慢。只有用DIR加循环的方法,速度飞快。下面是三种方法的代码:     1、filesearch法    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的空格处理还没认真研究,处理后会有一些不完美的地方,凑够用了。 Sub Pypackhelp() ' ' Pypackhelp 宏 ' '  Dim pg As Paragraph, r As Range  For Each pg In ActiveDocument.Par...
  • VBA遍历单元格

    千次阅读 2013-11-27 15:17:00
    Sub test() Dim str Dim i, j i = 1 j = 1 For r = 1 To Worksheets(2).UsedRange.Rows.Count For c = 1 To Worksheets(2).UsedRange.Columns.Count str = Worksh...
  • vba遍历并复制

    2020-11-16 08:58:20
    Sub addtable() ' ' addtable Macro ' 宏由 Administrator 录制,时间: 2020/11/15 ' ' Dim number,numberstart number = Sheets("汇总").UsedRange.Rows.Count numberstart = number - 11 Dim a As String ...
  • VBA 遍历所有文件夹内容

    千次阅读 2020-08-28 23:14:56
    今天讲讲VBA遍历所有文件夹,之前提到过,感觉这个很是实用,以为如果要批量导入的话,能遍历操作效率杠杠的 一、VBA遍历单个文件夹 下面的所有内容之前已经学过,再把代码贴一下,主要是通过Dir实现: ...
  • 我们可能会经常要将一个文件夹中的所有文件都遍历一遍,然后进行修改,下面就介绍用Dir函数实现遍历*.xlsx文件的方法 Dir 函数 返回一个 String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的...
  • Excel VBA 遍历单元格 单元格读取

    万次阅读 2011-10-08 21:14:39
    Sub test()  Dim str  Dim i, j  i = 1  j = 1  For r = 1 To Worksheets(2).UsedRange.Rows.Count  For c = 1 To Works
  • '循环工作簿WB中的sheet(工作表) For i = 1 To WB . Worksheets . Count WB . Worksheets ( i ) . Select '选中当前工作表 WB . Worksheets ( i ) . Range ( "A1" ) . Select '工作表页面的鼠标指向...
  • VBA7种遍历方法

    千次阅读 2017-03-06 10:40:00
    Sub 在选定文档最后加入一句话() '遍历文件 Dim MyDialog As FileDialog On Error Resume NextApplication.ScreenUpdating = False Set MyDialog = Application.FileDialog(msoFileDialogFilePicker) With MyDialog'...
  • VBA 遍历是sheet

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

    万次阅读 2018-12-20 17:26:00
     VBA编程,如何对数组进行遍历? 2.解决方案  方式一:使用for循环 Sub 遍历数组1() '声明一个变量 Dim Arr As Variant '声明一个数字变量 Dim i As Integer '变量类型指定为数组并赋值 Arr = ...
  • 1 字典的遍历方法 即使是后期绑定,也可以用 for each i in dict1.keys() '这里用到的 dict1.keys() 但不是 dict1.keys(i) 是可以的 Sub test_dict11() Dim dict1 As Object Set dict1 = CreateObject(...
  • 扩展名也可以是其它的xlsx之类的,自己修改扩展名就行了 Sub SaveAllAndCloseXls() Dim FileName As String Dim extensionName As String For Each wbk In Workbooks FileName = wbk.Name '获取文件的名字,带...
  • vba 电子表格 宏代码 编程 用VBA代码实现遍历某文件夹下所有*.xls*文件,有两种实现方法
  • Excel高级字典学习 VBA

    2013-09-05 14:51:46
    VBA 运用EXCEL.
  • 方法一: 存在缺陷:选中所有单元格,批量生成公式时候,每次需要点击进入工作表点击单元格--进入编辑状态,... 使用公式如下: =MID(CELL("filename"),FIND("]",CELL("filename"))+1,99) ... For i = 1 To Act...
  • ExcelVBA遍历文件

    2018-08-05 10:52:10
    Sub a() Dim myFile, myPath myPath = "C:\" myFile = Dir("C:\" & "*.xlsx") Do While myFile <> "" If myFile &... Workbooks.Ope
  • 利用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 字典使用小结:关键字循环

    千次阅读 2019-12-22 16:59:03
    VBA中创建字典有两种方法: 2.1 引用声明(前期绑定) 在VBE菜单中,选择“工具-引用”,在弹出的对话框中选择中边的“浏览”,此时会打开Windows系统的驱动目录(C:\Windows\System32),然后找到scrrun.dll,...
  • 用baidir函数加上循环即可。比du如将D:\ABC文件夹内的所有文件zhi显dao示到zhuanA列,代码如下: Sub遍历所有文件() DimFn$,N% Fn=Dir("D:\ABC\*.*") WhileFn<>"" N=N+1 Range("A"&N)=Fn Fn=Dir Wend End...
  • VBA循环 + 遍历 的写法 Sub test_arr() 'VBA循环 + 遍历 的写法 arr = Array(1, 2, 3) For i = 0 To 5 Debug.Print (i) Next Debug.Print ("----------------我是分割线------------------") ...
  •  '遍历所有工作表(sheet)  For i = 1 To ActiveWorkbook.Worksheets.Count  '下面这句,亦可以用ActiveWorkbook.Worksheets(i).Activate 进行替代,代表激活此工作表  ActiveWorkbook.Worksheets(i).Select...

空空如也

空空如也

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

vba循环遍历