Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2680|回复: 2

[已解决]执行VBA的时候,添加什么代码才能先清除内容再执行代码?

[复制链接]
发表于 2017-6-27 11:38 | 显示全部楼层 |阅读模式
要求:点击按钮1的时候,需要先清除D列单元格内容,再执行以下代码。不然会有上次的残留操作内容。





        Sub 唯一值()
            Dim arr, i%, j%, u%, brr(),  k%
            arr =  [a1].CurrentRegion
            u = UBound(arr)
            ReDim brr(1 To u)
            For i = 1 To u
                If i < u Then
                    For j = i + 1 To  u
                        If arr(i, 1) =  arr(j, 1) Then arr(j, 1) = ""
                    Next j
                End If
                If arr(i, 1) <>  "" Then k = k + 1: brr(k) = arr(i, 1)
            Next i
             Range("D1").Resize(k) = Application.Transpose(brr)
        End Sub
   

最佳答案
2017-6-27 11:42
添加一句columns(4).clearcontents

工作簿1.zip

9.88 KB, 下载次数: 6

发表于 2017-6-27 11:42 | 显示全部楼层    本楼为最佳答案   
添加一句columns(4).clearcontents

评分

参与人数 1 +1 收起 理由
johnj4321 + 1 赞一个

查看全部评分

回复

使用道具 举报

发表于 2017-6-27 15:26 | 显示全部楼层
  1. Sub 唯一值()
  2. Dim arr, i%, j%, u%, brr(), k%
  3. arr = [a1].CurrentRegion
  4. u = UBound(arr)
  5. ReDim brr(1 To u)
  6. For i = 1 To u
  7.     If i < u Then
  8.         For j = i + 1 To u
  9.             If arr(i, 1) = arr(j, 1) Then arr(j, 1) = ""
  10.         Next j
  11.     End If
  12.     If arr(i, 1) <> "" Then k = k + 1: brr(k) = arr(i, 1)
  13. Next i
  14. Range("D1:D" & Rows.Count).ClearContents
  15. Range("D1").Resize(k) = Application.Transpose(brr)
  16. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
johnj4321 + 1 赞一个

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 07:21 , Processed in 0.143056 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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