gpt4 book ai didi

vba - 从 VBA 中的单元格中删除 ChrW 和空格

转载 作者:行者123 更新时间:2023-12-04 21:56:35 25 4
gpt4 key购买 nike

我有下面的代码应该删除所有不可打印的字符并修剪单元格中的所有空间,但它并没有在所有 selected 上执行细胞出于某种原因。

  Sub removeSpace()

Dim rngremovespace As Range
Dim CellChecker As Range

Set rngremovespace = Selection

rngremovespace.Columns.Replace What:=Chr(160), Replacement:=Chr(32), _
LookAt:=xlPart, SearchOrder:=xlByColumns, MatchCase:=False

For Each CellChecker In rngremovespace.Columns

CellChecker.Value = Application.Trim(CellChecker.Value)
CellChecker.Value = Application.WorksheetFunction.Clean(CellChecker.Value)

Next CellChecker
Set rngremovespace = Nothing


End Sub

最佳答案

试试下面的代码:

Sub removeSpace()
Dim rngremovespace As Range
Dim CellChecker As Range

Set rngremovespace = Intersect(ActiveSheet.UsedRange, Selection)

rngremovespace.Replace What:=Chr(160), _
Replacement:=Chr(32), _
LookAt:=xlPart, _
SearchOrder:=xlByColumns, _
MatchCase:=False

For Each CellChecker In rngremovespace.Cells
CellChecker.Value = Application.Trim(CellChecker.Value)
CellChecker.Value = Application.Clean(CellChecker.Value)
Next CellChecker

Set rngremovespace = Nothing
End Sub

上面的代码避免了对 Columns 的任何引用。 ,并且仅适用于用户选择的单元格。如果需要处理一整列,可以由用户选择,但是 Intersect将确保只处理使用过的单元格。

纳入 .CellsFor Each CellChecker In rngremovespace.Cells确保已选择的任何不连续单元格范围不会导致 For Each处理每个“区域”,而是分别处理每个单元格。

关于vba - 从 VBA 中的单元格中删除 ChrW 和空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43409190/

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