当前位置:   article > 正文

【原创】VBA(实验23)如何去掉一列中的空格,多种工作表函数方法以及VBA方法_vba 一列去空格

vba 一列去空格

 

 

问题

左上角为a1

比如其中,key2 ,key4, key6 后面都可能带空格

 

key1
key2 
key3
key4  
key5
key6   
key7
key8
key9
key10
key11
key12
key10
key10
key10
key12
key12

 

VBA方法

所有的工作表函数,都是针对单元格的? --也就是基本都得用循环

数组公式不是吧

 'trim居然没生效,末尾空格也没去掉

好像trim是 VBA自带函数?不是工作表函数?

应该要修改value

  1. Sub 删除空格() 'trim居然没生效,末尾空格也没去掉
  2. Dim target1 As Object
  3. Dim i As Object
  4. Set target1 = ActiveSheet.Range("a1:a17") '是一个二维数组
  5. For Each i In target1
  6. Application.WorksheetFunction.Trim (i)
  7. 'Application.WorksheetFunction.Trim (target1) trim是针对cell的
  8. Next i
  9. End Sub

查找资料

Selection.CurrentRegion.Select
For Each c In Selection
c.Value = Trim(c.Value)

不能用TRIM函数,不然全部空格都会删除。
要用LTRIM函数、RTRIM函数组合使用。
LTRIM() 是去除字符首位的空格(不论有几个空格)
RTRIM() 是去除字符尾部的空格(不论有几个空格)
如二楼的回答,把Trim(c.Value) 改成 LTrim(RTrim(c.Value)) 即可。

  1. 一个单元格的怎么写?
  2. 比如:去掉ActiveSheet.Cells(1, 1)的话怎么写?

Sub test()
    a = "   ax aa    b b   "
    Debug.Print Trim(a)
    Debug.Print Application.WorksheetFunction.Trim(a)
End Sub
结果
ax aa    b b
ax aa b b
我知道了,trim()和Application.WorksheetFunction.Trim()不一样

工作表函数中间的空格只保留一个

 

Sub Oval1_Click33()

Dim n, m, i

For n = 1 To 10

 i = 1

 m = ""

 While i <> Len(Cells(n, 1)) + 1

 If Asc(Mid$(Cells(n, 1), i, 1)) > 33 Then

 m = m & Mid$(Cells(n, 1), i, 1)

 

 

 End If

  i = i + 1

  Wend

 Cells(n, 1) = m

 

Next

End Sub

 

'替换整个文档范围的

ThisDocument.Content.Text = Replace(ThisDocument.Content.Text, vbCrLf, "")

'替换选中范围的

Selection.Range.Text = Replace(Selection.Range.Text, vbCrLf, "")

 

vbcrlf 

char(10)

char(10)&vbtab 

这样都可以吗?

 

 

仿造别人写的

  1. Sub 删除空格()
  2. Dim target1 As Object
  3. Dim cell_i As Object
  4. Set target1 = ActiveSheet.Range("a1:a17")
  5. For Each cell_i In target1
  6. cell_i.Value = Trim(cell_i.Value)
  7. Next cell_i
  8. End Sub

 

  1. Sub 删除空格()
  2. Dim target1 As Object
  3. Dim cell_i As Object
  4. Set target1 = ActiveSheet.Range("a1:a17")
  5. For Each cell_i In target1
  6. cell_i.Value = Application.WorksheetFunction.Substitute(cell_i.Value, " ", "")
  7. Next cell_i
  8. End Sub

 

 

 

工作表函数方法

去掉单元格内所有的空格

=SUBSTITUTE(A1," ","")

去掉首尾空格

=TRIM(A1)  
去掉所有非打印字符

=CLEAN(A1)

 

 

有人做了统计,牛逼了,这个图是转的

 

 

后面这部分内容是转的

excel表格中怎么删除看不见的空格或符号?

方法一:各种处理方法对空格和不可见符号的处理能力对比

  1、对比如图



  方法二:用LEN函数判断看不见的空格和符号是否被删除。

  1、用LEN函数计算单元格字符个数

  因为是看不见的空格或者符号,我们无法用肉眼来判断是否删除成功,这时我们需要用LEN函数来辅助判断。比如在空白单元格B2中输入“=LEN(A2)”,就能计算出A2单元格中字符的个数。用LEN函数计算处理前和处理后的单元格字符个数,就能判断出是否删除成功了。



  方法三:使用TRIM函数去除空格

  1、TRIM函数的语法格式及实例

  =trim(text),用来删除字符串前后的空格,但是会在字符串中间保留一个作为连接用途。实例解说如图



  方法四:用替换法去除空格

  1、选中要替换的G列,点击EXCEL软件的菜单栏中的“编辑”,在下拉菜单中点击“替换”,在弹出窗口中点击“选项”。在查找内容框中,输入空格,在替换中不要输入。点击“选项”,以便更详细地设置。

 

  2、搜索框中选“按列”,区分大小写、单元格匹配、区分全/半角的前面不要选择,最后点击全部替换,就能把整列替换成无空格了。用查找替换法需要知道要查找的内容,但因为是不可见空格或符号,所以只能替换空格,而无法替换其它不可见符号。



  方法五:使用CLEAN函数去除符号

  1、CLEAN函数的语法格式及实例

  =CLEAN(text),要从text中删除非打印字符的任何工作表信息。CLEAN 函数被设计为删除文本中 7 位 ASCII 码的前 32 个非打印字符(值为 0 到 31)。实例解说见图。



  方法六:使用SUBSTITUTE函数去除空格和符号

  1、SUBSTITUTE函数语法及实例

  =substitute(text,old_text,new_text,[instance_num])

  =substitute(需要替换的文本,旧文本,新文本,第N个旧文本)

  参数Instance_num ——为一数值,用来指定以 new_text (新文本)替换第几次出现的 old_text(旧文本)。

  参数Instance_num 可省略,这表示用 new_text(新文本)替换掉所有的old_text(旧文本)。

  实例解说如图

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/625256
推荐阅读
相关标签
  

闽ICP备14008679号