【问题标题】:VBA loop help required需要 VBA 循环帮助
【发布时间】:2018-09-05 13:27:33
【问题描述】:

我的工作簿中有 2 张工作表 表 1 - A2 及以后我有数字的地方 名为“LOC”的工作表,我一次输入 1 个数字,重新计算并格式化并保存

必须对在工作表 1 - A2 及以下输入的所有数字重复该过程,直到列结束

请帮我循环一下

我必须从表格 1 中复制每个数字并将其粘贴到 C2 中名为“LOC”的表格中,然后再次重复该过程

Sub MultipleSOA()
 '1st SOA

Sheets("Sheet1").Select
Range("A2").Select
Selection.Copy
Sheets("Loc ").Select
Range("C2").Select
ActiveSheet.Paste

ActiveSheet.Calculate

Range("B9:G9").Select
Cells.Replace What:="PCL-", Replacement:="", LookAt:=xlPart, SearchOrder _
    :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:="SCL-", Replacement:="", LookAt:=xlPart, SearchOrder _
    :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:="PSI-", Replacement:="", LookAt:=xlPart, SearchOrder _
    :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:="CL-", Replacement:="", LookAt:=xlPart, SearchOrder _
    :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Range("B9:G9").Select

Range("C4").Select
Columns("C:C").ColumnWidth = 44.29
Range("C4").Select

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\XXXX\Desktop\SOA\" & ActiveSheet.Range("B9").Value & " - " & ActiveSheet.Range("C2").Value & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
End Sub

【问题讨论】:

标签: vba excel


【解决方案1】:

我没有测试过,但是试试下面的代码……

Option Explicit

Sub MultipleSOA()

    Dim varItemsToReplace As Variant
    Dim varItem As Variant
    Dim wksSource As Worksheet
    Dim wksDest As Worksheet
    Dim rngSource As Range
    Dim rngCell As Range

    varItemsToReplace = Array("PCL-", "SCL-", "PSI-", "CL-")

    Set wksSource = Worksheets("Sheet1")
    Set wksDest = Worksheets("Loc")

    With wksSource
        Set rngSource = .Range("A2:A" & .Cells(.Rows.Count, "A").End(xlUp).Row)
    End With

    For Each rngCell In rngSource
        With wksDest
            .Range("C2").Value = rngCell.Value
            .Calculate
            For Each varItem In varItemsToReplace
                .Range("B9:G9").Replace _
                    What:=varItem, _
                    Replacement:="", _
                    LookAt:=xlPart, _
                    SearchOrder:=xlByRows, _
                    MatchCase:=False, _
                    SearchFormat:=False, _
                    ReplaceFormat:=False
            Next varItem
            .Columns("C:C").ColumnWidth = 44.29
            .ExportAsFixedFormat _
                Type:=xlTypePDF, _
                Filename:="C:\Users\XXXX\Desktop\SOA\" & .Range("B9").Value & " - " & .Range("C2").Value & ".pdf", _
                Quality:=xlQualityStandard, _
                IncludeDocProperties:=True, _
                IgnorePrintAreas:=False, _
                OpenAfterPublish:=False
        End With
    Next rngCell

End Sub

【讨论】:

  • 您好 Domenic,此代码仅适用于 5 个代码,在运行第 5 条语句后。代码停止,代码的其余部分不执行此功能。我不知道问题出在哪里
  • 哪一行给出了错误?您遇到了哪个错误?
  • 你好 Domenic,我稍微调整了代码并且工作正常。现在没有问题!!!!非常感谢你
  • 您好 Domenic,我的工作表突然停止重新计算,之前工作正常。任何可能的原因
猜你喜欢
  • 2014-09-30
  • 2013-05-24
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-28
  • 2015-07-30
  • 1970-01-01
相关资源
最近更新 更多