Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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

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 跨多个工作表的非连续单元格替换内容-错误1004_Excel_Vba - Fatal编程技术网

Excel 跨多个工作表的非连续单元格替换内容-错误1004

Excel 跨多个工作表的非连续单元格替换内容-错误1004,excel,vba,Excel,Vba,我是一个Excel VBA新手,希望能得到一些代码方面的帮助。我们有一份包含四份相同工作表的工作簿,一年中每个季度一份。我想做的是在一个命令按钮上运行代码,单击该按钮,将识别名称信息替换为通用的、按顺序编号的信息(ex:Joe Smith been Male1)。有多种参与者类型,在工作表列和电子表格中的多行中表示。因此,雄性的数据在4个标签的C11、C28、C45..C215、J11、J28、J45、X11、X28、X45…AE215单元格中 我有一个工作表数组,用于标识四个季度选项卡,以及每

我是一个Excel VBA新手,希望能得到一些代码方面的帮助。我们有一份包含四份相同工作表的工作簿,一年中每个季度一份。我想做的是在一个命令按钮上运行代码,单击该按钮,将识别名称信息替换为通用的、按顺序编号的信息(ex:Joe Smith been Male1)。有多种参与者类型,在工作表列和电子表格中的多行中表示。因此,雄性的数据在4个标签的C11、C28、C45..C215、J11、J28、J45、X11、X28、X45…AE215单元格中

我有一个工作表数组,用于标识四个季度选项卡,以及每个参与者类型的代码,这些代码定义了将列出其姓名的单元格范围

下面的代码给出了每个MaleCare行的对象“\u工作表”在
处失败的错误1004方法“范围”。。。有没有发现我做错了什么

Sub DelConfSAVE()
    Dim sh As Worksheet

    For Each sh In Worksheets(Array("Oct-Dec Attendance", "Jan-Mar Attendance", _
    "Apr-Jun Attendance", "Jul-Sep Attendance"))

        'Replace Male Caregiver (X)
        Dim MaleCare As Range
        Dim X As Integer

        X = 0

        For Each MaleCare In sh.Range("C11, C28, C45, C62, C79, C96, C113, C130, C147, C164, C181, C198, C215, J11, J28, J45, J62, J79, J96, J113, J130,J147, J164, J181, J198, J215, Q11, Q28, Q45, Q62, Q79, Q96, Q113, Q130,  Q147, Q164, Q181, Q198, Q215, X11, X28, X45, X62, X79, X96, X113, X130, X147, X164, X181, X198, X215, AE11, AE28, AE45, AE62, AE79, AE96, AE113, AE130, AE147, AE164, AE181, AE198, AE215")
            If MaleCare.Value <> "" Then
               X = X + 1
               MaleCare.Value = "MaleCare" & X
            End If
        Next MaleCare

        Exit For

        'Replace Female Caregiver (Y)
        Dim FemCare As Range
        Dim Y As Integer

        Y = 0

        For Each FemCare In sh.Range("D11, D28, D45, D62, D79, D96, D113, D130, D147, D164, D181, D198, D215, K11, K28, K45, K62, K79, K96, K113, K130, K147, K164, K181, K198, K215, R11, R28, R45, R62, R79, R96, R113, R130, R147, R164, R181, R198, R215, Y11, Y28, Y45, Y62, Y79, Y96, Y113, Y130, Y147, Y164, Y181, Y198, Y215,AF11, AF28, AF45, AF62, AF79, AF96, AF113, AF130, AF147, AF164, AF181, AF198, AF215")
            If FemCare.Value <> "" Then
                Y = Y + 1
                FemCare.Value = "FemCare" & Y
            End If
        Next FemCare

        Exit For

        'And additional code for Youth1 Youth2 Youth3 OtherAdult cut for posting brevity

    Next sh
End Sub
Sub-DelConfSAVE()
将sh设置为工作表
对于工作表中的每个sh(数组(“10-12月出勤”、“1-3月出勤”)_
“4-6月出席”、“7-9月出席”))
'更换男性护理者(X)
暗淡的马列斯山脉
作为整数的Dim X
X=0
对于sh.范围内的每个MaleCare("C11、C28、C45、C62、C79、C96、C113、C130、C147、C164、C181、C198、C215、J11、J28、J45、J62、J79、J96、J113、J130、J147、J164、J181、J198、J215、Q11、Q25、Q62、Q79、Q96、Q113、Q130、Q147、Q164、Q181、Q198、Q115、Q115、X11、X28、X45、X62、X62、X72、X79、X96、X113、X130、X147、X147、X147、X164、X115、X115、X115、X115、X115、X115、X115、X115、X115、X115、X113、X114、X114、X147、X114、X147、X147、X115、X115、X115、X115、X115、AEX115、AEX115、AEX115、AE4、AE181、AE198、AE215“
如果是MaleCare.Value“”,则
X=X+1
MaleCare.Value=“MaleCare”&X
如果结束
下一代男性护理
退出
'更换女性护理者(Y)
暗淡的女性护理范围
Dim Y作为整数
Y=0
对于sh范围内的每个女性护理(“D11,D28,D45,D62,D79,D96,D113,D130,D147,D164,D181,D198,D215,K11,K28,K45,K62,K79,K96,K113,K130,K147,K164,K181,K198,K215,R11,R28,R45,R62,R79,R96,R113,R130,R147,R164,R181,R198,R115,R215,Y11,Y28,Y45,Y62,Y79,Y96,Y113,Y130,Y147,Y164,Y115,Y115,Y115,R115,R115,R115,R115,R115,R115,R115,R118,R115,R113,R113,R113,R113,R113,R113,R113,R113,R113,R113,R113,R113,R113,R113,R113,R113,R113,R113,AF181,AF198,AF215“
如果FemCare.Value为“”,则
Y=Y+1
FemCare.Value=“FemCare”和Y
如果结束
下一代女性护理
退出
'和Youth1 Youth2 Youth3其他成人版的附加代码,以简化发布
下一个sh
端接头

斯蒂芬妮,这就是你要尝试的吗

Sub DelConfSAVE()
    Dim sh As Worksheet
    Dim X As Long, Y As Long, i As Long

    For Each sh In Worksheets(Array("Oct-Dec Attendance", "Jan-Mar Attendance", _
    "Apr-Jun Attendance", "Jul-Sep Attendance"))

        X = 0

        For i = 11 To 215 Step 17
            With sh
                '~~> Male
                If Not Len(Trim(.Range("C" & i).Value)) = 0 _
                Then .Range("C" & i).Value = "MaleCare" & X

                If Not Len(Trim(.Range("J" & i).Value)) = 0 _
                Then .Range("J" & i).Value = "MaleCare" & X

                If Not Len(Trim(.Range("Q" & i).Value)) = 0 _
                Then .Range("Q" & i).Value = "MaleCare" & X

                If Not Len(Trim(.Range("X" & i).Value)) = 0 _
                Then .Range("X" & i).Value = "MaleCare" & X

                If Not Len(Trim(.Range("AE" & i).Value)) = 0 _
                Then .Range("AE" & i).Value = "MaleCare" & X

                '~~> Female
                If Not Len(Trim(.Range("D" & i).Value)) = 0 _
                Then .Range("D" & i).Value = "FemCare" & Y

                If Not Len(Trim(.Range("K" & i).Value)) = 0 _
                Then .Range("K" & i).Value = "FemCare" & Y

                If Not Len(Trim(.Range("R" & i).Value)) = 0 _
                Then .Range("R" & i).Value = "FemCare" & Y

                If Not Len(Trim(.Range("Y" & i).Value)) = 0 _
                Then .Range("Y" & i).Value = "FemCare" & Y

                If Not Len(Trim(.Range("AF" & i).Value)) = 0 _
                Then .Range("AF" & i).Value = "FemCare" & Y

                X = X + 1: Y = Y + 1
            End With
        Next i

        'And additional code for Youth1 Youth2 Youth3 OtherAdult cut for posting brevity
    Next sh
End Sub

Siddharth-这看起来效果很好。我需要为其余类型的人添加额外的代码并进行测试。非常感谢。Woops-太早点击enter。你能为我澄清一下“步骤17”是什么吗“部分代码的意思是?如果您注意到有一个序列,即如果特定列中的每个单元格在17个单元格之后,例如C28在C11之后是17个单元格,依此类推。我只是把它们放在一个循环中:)一个优雅的解决方案。非常感谢你!我的头痛消失了!Kool:如果你的问题得到解决,请考虑接受一个答案: