Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 每次使用表中的不同数据运行sub-a的次数是多少?_Excel_Vba - Fatal编程技术网

Excel 每次使用表中的不同数据运行sub-a的次数是多少?

Excel 每次使用表中的不同数据运行sub-a的次数是多少?,excel,vba,Excel,Vba,还需要帮忙吗?由于UGP,下面的代码运行良好。我需要运行这段代码215次。每次“Set sht=Sheet2”中的数值必须递增1,“rplcList=2”中的数值也必须递增1。所有这些都达到了两个值都为216的程度。我该怎么做呢?我一定很简单,但就我个人而言,我想不出来 我是否在VB中创建另一个模块 Sub Multi_FindReplace() Dim sht As Worksheet Dim fndList As Integer Dim rplcList As Integer Dim tbl

还需要帮忙吗?由于UGP,下面的代码运行良好。我需要运行这段代码215次。每次“Set sht=Sheet2”中的数值必须递增1,“rplcList=2”中的数值也必须递增1。所有这些都达到了两个值都为216的程度。我该怎么做呢?我一定很简单,但就我个人而言,我想不出来

我是否在VB中创建另一个模块

Sub Multi_FindReplace()
Dim sht As Worksheet
Dim fndList As Integer
Dim rplcList As Integer
Dim tbl As ListObject
Dim myArray As Variant

Set tbl = Worksheets("Sheet1").ListObjects("Table1")
Set TempArray = tbl.DataBodyRange
Set sht = Sheet2
myArray = Application.Transpose(TempArray)
fndList = 1
rplcList = 2

For x = LBound(myArray, 1) To UBound(myArray, 2)
If sht.Name <> tbl.Parent.Name Then
      sht.Cells.Replace What:=myArray(fndList, x),     Replacement:=myArray(rplcList, x), _`
        LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
        SearchFormat:=False, ReplaceFormat:=False

        End If
Next x
End Sub
Sub Multi_FindReplace()
将sht变暗为工作表
作为整数的Dim fndList
将rplcList设置为整数
作为ListObject的Dim tbl
Dim myArray作为变体
Set tbl=工作表(“表1”)。列表对象(“表1”)
设置TempArray=tbl.DataBodyRange
设置sht=第2页
myArray=Application.Transpose(TempArray)
fndList=1
rplcList=2
对于x=LBound(myArray,1)到UBound(myArray,2)
如果sht.Name tbl.Parent.Name,则
sht.Cells.Replace What:=myArray(fndList,x),Replacement:=myArray(rplcList,x)_`
LookAt:=xlPart,SearchOrder:=xlByRows,MatchCase:=False_
SearchFormat:=False,ReplaceFormat:=False
如果结束
下一个x
端接头

我想你只需要下一个循环

这应该贯穿2-216的所有工作表以及增量rplcList

Sub Multi_FindReplace()
Dim sht As Worksheet
Dim fndList As Integer
Dim rplcList As Integer
Dim tbl As ListObject
Dim myArray As Variant

Set tbl = Worksheets("Sheet1").ListObjects("Table1")
Set TempArray = tbl.DataBodyRange

myArray = Application.Transpose(TempArray)
fndList = 1
rplcList = 2
SheetNumber = 2

For SheetNumber = 2 To 216
    Set sht = Worksheets(SheetNumber)
    For x = LBound(myArray, 1) To UBound(myArray, 2)
       If sht.Name <> tbl.Parent.Name Then
            sht.Cells.Replace What:=myArray(fndList, x), Replacement:=myArray(rplcList, x), _
            LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
            SearchFormat:=False, ReplaceFormat:=False

       End If
    Next x
rplcList = rplcList + 1
SheetNumber = SheetNumber + 1
Next

End Sub
Sub Multi_FindReplace()
将sht变暗为工作表
作为整数的Dim fndList
将rplcList设置为整数
作为ListObject的Dim tbl
Dim myArray作为变体
Set tbl=工作表(“表1”)。列表对象(“表1”)
设置TempArray=tbl.DataBodyRange
myArray=Application.Transpose(TempArray)
fndList=1
rplcList=2
张数=2
对于SheetNumber=2到216
设置sht=工作表(图纸编号)
对于x=LBound(myArray,1)到UBound(myArray,2)
如果sht.Name tbl.Parent.Name,则
sht.Cells.Replace What:=myArray(fndList,x),Replacement:=myArray(rplcList,x)_
LookAt:=xlPart,SearchOrder:=xlByRows,MatchCase:=False_
SearchFormat:=False,ReplaceFormat:=False
如果结束
下一个x
rplcList=rplcList+1
SheetNumber=SheetNumber+1
下一个
端接头

这将贯穿工作簿中的每一页

Public Sub Multi_FindReplace()

    Dim Sht As Worksheet
    Dim fndList As Integer
    Dim rplcList As Integer
    Dim tbl As ListObject
    Dim myArray As Variant
    Dim x As Long

    Set tbl = Worksheets("Sheet1").ListObjects("Table1")
    Set TempArray = tbl.DataBodyRange
    myArray = Application.Transpose(TempArray)
    fndList = 1
    rplcList = 2

    For Each Sht In ThisWorkbook.Worksheets
        If Sht.Name <> tbl.Parent.Name Then
            For x = LBound(myArray, 1) To UBound(myArray, 2)
                Sht.Cells.Replace What:=myArray(fndList, x), _
                                  Replacement:=myArray(rplcList, x), _
                                  LookAt:=xlPart, _
                                  SearchOrder:=xlByRows, _
                                  MatchCase:=False, _
                                  SearchFormat:=False, _
                                  ReplaceFormat:=False
            Next x
            rplcList = rplcList + 1 'May want to move this outside the "End If" statement.
        End If
    Next Sht

End Sub
Public Sub Multi_FindReplace()
将Sht变暗为工作表
作为整数的Dim fndList
将rplcList设置为整数
作为ListObject的Dim tbl
Dim myArray作为变体
暗x等长
Set tbl=工作表(“表1”)。列表对象(“表1”)
设置TempArray=tbl.DataBodyRange
myArray=Application.Transpose(TempArray)
fndList=1
rplcList=2
用于此工作簿中的每个Sht。工作表
如果Sht.Name tbl.Parent.Name,则
对于x=LBound(myArray,1)到UBound(myArray,2)
Sht.Cells.Replace What:=myArray(fndList,x)_
替换:=myArray(rplcList,x)_
看:=xlPart_
搜索顺序:=xlByRows_
MatchCase:=假_
SearchFormat:=False_
ReplaceFormat:=False
下一个x
rplcList=rplcList+1'可能希望将其移到“End If”语句之外。
如果结束
下一步
端接头
每个循环的
文档:

谢谢你,达伦。它工作得很好。非常感谢。