Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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/4/fsharp/3.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
如果单元格等于“VBA”&引用;“做”&引用;,否则请转到下一页_Vba_Excel - Fatal编程技术网

如果单元格等于“VBA”&引用;“做”&引用;,否则请转到下一页

如果单元格等于“VBA”&引用;“做”&引用;,否则请转到下一页,vba,excel,Vba,Excel,我希望VBA代码能做到这一点:若单元格等于“诸如此类”,那个么插入新列,否则移动到下一页。问题是,如果我在没有 wSheet 然后一切正常(除了进入下一页)。添加wSheet时,代码将保留在第一个活动工作表中,并创建其他列,即使单元格不等于2013 06。有什么建议吗?谢谢 Sub Macro2() ' ' Macro2 Macro ' dim wSheet As Worksheet For Each wSheet In Worksheets If wSheet.Range("R1")="2

我希望VBA代码能做到这一点:若单元格等于“诸如此类”,那个么插入新列,否则移动到下一页。问题是,如果我在没有

wSheet

然后一切正常(除了进入下一页)。添加wSheet时,代码将保留在第一个活动工作表中,并创建其他列,即使单元格不等于2013 06。有什么建议吗?谢谢

Sub Macro2()
'
' Macro2 Macro
'
dim wSheet As Worksheet

For Each wSheet In Worksheets

If wSheet.Range("R1")="2013 06" Then
'If Range("R1") = "2013 06" Then
    Columns("R:T").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Columns("L:N").Select
    Selection.Copy
    Columns("R:R").Select
    ActiveSheet.Paste
    Selection.Replace What:="2013 04", Replacement:="2013 06", LookAt:=xlPart _
        , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

ElseIf wSheet.Range("R1")<>"2013 06"  Then
'ElseIf Range("R1") <> "2013 06" Then
End If

Next wSheet

End Sub
Sub-Macro2()
'
'宏2宏
'
将工作表设置为工作表
对于工作表中的每个工作表
如果wSheet.Range(“R1”)=“2013 06”,则
'如果范围(“R1”)=“2013 06”,则
列(“R:T”)。选择
选择。插入Shift:=xlToRight,CopyOrigin:=xlFormatFromLeftOrAbove
列(“L:N”)。选择
选择,复制
列(“R:R”)。选择
活动表。粘贴
选择。替换内容:=“2013 04”,替换:=“2013 06”,查看:=xlPart_
,SearchOrder:=xlByRows,MatchCase:=False,SearchFormat:=False_
ReplaceFormat:=False
ElseIf wSheet.Range(“R1”)“2013 06”然后
'埃尔塞夫范围(“R1”)“2013 06”然后
如果结束
下一页
端接头

你真的不需要陈述
或者
,什么都不做,这意味着让循环进入下一页。也不建议使用
。选择
方法,因此我对您的代码进行了一些优化。查看此操作是否按预期工作:

Sub Macro2()
    Dim wSheet As Worksheet
    For Each wSheet In Worksheets
        If wSheet.Range("R1") = "2013 06" Then
            wSheet.Columns("R:T").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
            wSheet.Columns("L:N").Copy
            wSheet.Paste
            wSheet.Columns("R:R").Replace What:="2013 04", Replacement:="2013 06", LookAt:=xlPart _
                , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False
        End If
    Next wSheet
End Sub

工作起来很有魅力。非常感谢。