ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: tommyszeto

[分享] (感谢Ib_bn老师!问题已解决!) 想用VBA去掉末尾空格

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-4-8 14:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Sub tset()
Dim rng As Range, c As Range
Dim RegEx As New RegExp
Set rng = UsedRange
With RegEx
    .Global = True
    .IgnoreCase = True
    .Pattern = "\s+(00)*"
    For Each c In rng
        c = .Replace(c.Value, "")
    Next
End With
End Sub

TA的精华主题

TA的得分主题

发表于 2010-4-8 14:50 | 显示全部楼层
把数据读到数组中速度超快

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-8 16:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 cflood 于 2010-4-8 14:50 发表
把数据读到数组中速度超快



程序執行時, 有錯誤信息的顯示。
untitled.zip (21.17 KB, 下载次数: 9)

請修正, 謝謝您!

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-10 18:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Hi 懇請幫忙修改如下!

請求:
- 想在sheet1加上按鈕;按制後從視窗內輸入揀選指定的檔案去執行指令
- 字體後有空格, 去掉末尾的空格
- 但遇上空格後末端有00的字樣,請刪除00及除去尾隨的空格
- 只有空格而沒有字體,請除去空格
- 要保持日期的格式不變
- 若有函數公式,請保留

TA的精华主题

TA的得分主题

发表于 2010-4-10 19:10 | 显示全部楼层
试试这个.

Sub bbb()
    Dim i&, ii&, tmp$, s, arr1()
   
    arr1 = [a7].Resize([a65536].End(3).Row - 6, 13).Value
    For i = 1 To UBound(arr1)
        For ii = 1 To UBound(arr1, 2)
            tmp = arr1(i, ii)
            If Len(tmp) Then
                s = Split(tmp)
                If UBound(s) Then
                    arr1(i, ii) = s(0)
                End If
            End If
        Next
    Next
    [d7].Resize(UBound(arr1)).NumberFormatLocal = "@"
    [a7].Resize(UBound(arr1), 13).Value = arr1
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-11 00:57 | 显示全部楼层
原帖由 lb_bn 于 2010-4-10 19:10 发表
试试这个.

Sub bbb()
    Dim i&, ii&, tmp$, s, arr1()
   
    arr1 = [a7].Resize([a65536].End(3).Row - 6, 13).Value
    For i = 1 To UBound(arr1)
        For ii = 1 To UBound(arr1, 2)
        ...


您好lb_bn:
但串連之空格後的字體也去掉了,例如:
同一方格內:AAA BBB CCC (原有)
進行程式後:AAA (變更為)

有方法解決嗎?謝謝你!

TA的精华主题

TA的得分主题

发表于 2010-4-11 01:01 | 显示全部楼层

回复 16楼 tommyszeto 的帖子

楼主多上传点数据以方便测试吧.

TA的精华主题

TA的得分主题

发表于 2010-4-11 01:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. Sub bbb()
  2.     Dim i&, ii&, tmp$, s, arr1()

  3.     arr1 = [a7].Resize([a65536].End(3).Row - 6, 13).Value
  4.     For i = 1 To UBound(arr1)
  5.         For ii = 1 To UBound(arr1, 2)
  6.             tmp = arr1(i, ii)
  7.             If Len(tmp) Then
  8.                 If ii = 1 Then
  9.                     s = Split(tmp)
  10.                     If UBound(s) Then
  11.                         arr1(i, ii) = s(0)
  12.                     End If
  13.                 Else
  14.                     arr1(i, ii) = WorksheetFunction.Trim(tmp)
  15.                 End If
  16.             End If
  17.         Next
  18.     Next
  19.     [d7].Resize(UBound(arr1)).NumberFormatLocal = "@"
  20.     [a7].Resize(UBound(arr1), 13).Value = arr1
  21. End Sub
复制代码
再试试.

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-11 02:39 | 显示全部楼层
您好lb_bn:
這麼晚也能夠幫助我,我真的不好意思了。
試過運行程式,超極速,還可以保留原有日期的格式不變,但請問還可以保留函數公式嗎?
此外,因為我是剛來學習,可以簡單地解釋內裡的結構呀?

謝謝你!

TA的精华主题

TA的得分主题

发表于 2010-4-11 10:41 | 显示全部楼层

回复 19楼 tommyszeto 的帖子

  1. Sub bbb()
  2.     Dim i&, ii&, tmp$, s, arr1()

  3.     arr1 = [a7].Resize([a65536].End(3).Row - 6, 13).Formula
  4.     For i = 1 To UBound(arr1)
  5.         For ii = 1 To UBound(arr1, 2)
  6.             tmp = arr1(i, ii)
  7.             If Len(tmp) Then
  8.                 If Not tmp Like "=*" Then
  9.                     If ii = 1 Then
  10.                         s = Split(tmp)
  11.                         If UBound(s) Then
  12.                             arr1(i, ii) = s(0)
  13.                         End If
  14.                     Else
  15.                         arr1(i, ii) = WorksheetFunction.Trim(tmp)
  16.                     End If
  17.                 End If
  18.             End If
  19.         Next
  20.     Next
  21.     [d7].Resize(UBound(arr1)).NumberFormatLocal = "@"
  22.     [a7].Resize(UBound(arr1), 13).Value = arr1
  23. End Sub
复制代码
试试
就是将区域数据放到数组里,然后循环处理所有的数据.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-1 14:50 , Processed in 0.048332 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表