gpt4 book ai didi

vba - 一键跨多个电子表格运行 VBA

转载 作者:行者123 更新时间:2023-12-04 20:32:54 26 4
gpt4 key购买 nike

Excel 新手,如果我解释了一些错误,请原谅,很高兴清除评论中的任何 Q,我的 VBA 很可能很糟糕,但我昨天才第一次被要求这样做。

我正在尝试使用单个按钮清除所有工作表中的回车。
我找到了一种在当前工作表中清除它们的方法,并且运行良好:

Sub RemoveCarriageReturns()
Dim MyRange As Range
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

For Each MyRange In ActiveSheet.UsedRange
If 0 < InStr(MyRange, Chr(10)) Then
MyRange = Replace(MyRange, Chr(10), "")
End If
Next

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

我已经搜索了几种方法来让它在所有工作表中运行,但是似乎没有一个有效,我当前的代码是:
Sub RemoveCarriageReturns()
Dim MyRange As Range
Dim ws As Worksheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

For Each ws In Worksheets
For Each MyRange In ActiveSheet.UsedRange
Select Case UCase(ws.Name)
Case "OTCUEXTR", "OTFBCUDS", "OTFBCUEL"
With ws
If 0 < InStr(MyRange, Chr(10)) Then
MyRange = Replace(MyRange, Chr(10), "")
End If
End With
End Select
Next
Next ws

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

我可以看到它贯穿所有工作表,但除了第一张工作表之外没有任何变化(工作正常并删除了回车符。)
关于我在这里做错了什么有什么建议吗?

抱歉,如果之前已经回答过这个问题,到目前为止我一直无法在网上找到解决方案。

谢谢你的帮助!

最佳答案

  • 据我了解,ActiveSheet是显示在屏幕上的工作表。 (如果我错了,欢迎指正。)如果你还想使用这个方法,你必须先通过ws.Activate激活它。
  • 在您的代码中,它将检查 ws.name对于使用的每个单元格。它可能会拖累性能。更好的方法是先检查名称,然后再做你的事情。在您的情况下,由于您只需要查找 3 个工作表并且您已经知道它们的名称,因此可能首先设置一个数组是一种正确的方法。

  • ...
    Sub RemoveCarriageReturns()
    Dim MyRange As Range
    Dim NameList() As Variant
    NameList = Array("OTCUEXTR", "OTFBCUDS", "OTFBCUEL")
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

    For i = 0 To 2
    With Worksheets(NameList(i))
    For Each MyRange In .UsedRange
    If 0 < InStr(MyRange, Chr(10)) Then
    MyRange = Replace(MyRange, Chr(10), "")
    End If
    Next MyRange
    End With
    Next i

    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    End Sub

    关于vba - 一键跨多个电子表格运行 VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47199446/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com