Excel精英培训网

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

[已解决]替代代码:越简单越好

[复制链接]
发表于 2014-5-6 19:41 | 显示全部楼层 |阅读模式
帮忙:写一个代码:假设C列有数据,就取代A列数据,并把C,B列数据删除。假设C列没数据,B列有数据,就用B列数据替代A列数据,并把B列数据删除,运行之前提示确认结果就代替A列原数据源
最佳答案
2014-5-6 20:00
………………

替代代码.zip

8.04 KB, 下载次数: 9

发表于 2014-5-6 19:58 | 显示全部楼层
  1. Sub Macro1()
  2. Dim arr, brr, i&, zf$
  3. arr = ActiveSheet.UsedRange
  4. ReDim brr(1 To UBound(arr), 1 To 1)
  5. For i = 1 To UBound(arr)
  6.     If arr(i, 3) <> "" Then
  7.         brr(i, 1) = arr(i, 3)
  8.     Else
  9.         If arr(i, 2) <> "" Then brr(i, 1) = arr(i, 2)
  10.     End If
  11. Next
  12. zf = MsgBox("是否替换数据源?", vbYesNo)
  13. If zf = vbYes Then
  14.     ActiveSheet.UsedRange.ClearContents
  15.     Range("a1").Resize(UBound(brr)) = brr
  16. Else
  17.     Exit Sub
  18. End If
  19. End Sub
复制代码
回复

使用道具 举报

发表于 2014-5-6 20:00 | 显示全部楼层    本楼为最佳答案   
………………

替代代码.zip

11.72 KB, 下载次数: 20

回复

使用道具 举报

 楼主| 发表于 2014-5-7 09:58 | 显示全部楼层
dsmch 发表于 2014-5-6 20:00
………………

C 列没数据时会报错,如果C B列没数据时再提示没数据替代,谢谢
回复

使用道具 举报

发表于 2014-5-7 11:38 | 显示全部楼层
用实际数据说明问题
回复

使用道具 举报

 楼主| 发表于 2014-5-7 12:06 | 显示全部楼层
本帖最后由 fangniuji 于 2014-5-7 12:12 编辑
dsmch 发表于 2014-5-7 11:38
用实际数据说明问题


如果A列没数据:再做个提示,A列没数据,谢谢!如果没有会报错,如果BC列没资料,A列有,提示没有替代资料。谢谢

点评

上传附件,模拟结果,方便调试代码  发表于 2014-5-7 12:35
回复

使用道具 举报

 楼主| 发表于 2014-5-7 13:11 | 显示全部楼层
本帖最后由 fangniuji 于 2014-5-7 13:14 编辑
fangniuji 发表于 2014-5-7 12:06
如果A列没数据:再做个提示,A列没数据,谢谢!如果没有会报错,如果BC列没资料,A列有,提示没有替代资 ...


A 列没数据。报错

A列没数据.zip

15.16 KB, 下载次数: 2

A列有数据,BC没数据.zip

15.19 KB, 下载次数: 2

回复

使用道具 举报

发表于 2014-5-8 05:20 | 显示全部楼层
Sub Macro1()
On Error Resume Next
Dim arr, brr, i&, zf$
arr = ActiveSheet.UsedRange
ReDim brr(1 To UBound(arr), 1 To 1)
For i = 1 To UBound(arr)
    If arr(i, 3) <> "" Then
        brr(i, 1) = arr(i, 3)
    Else
        If arr(i, 2) <> "" Then brr(i, 1) = arr(i, 2)
    End If
Next
zf = MsgBox("是否替换数据源?", vbYesNo)
If zf = vbYes Then
    ActiveSheet.UsedRange.ClearContents
    Range("a1").Resize(UBound(brr)) = brr
Else
    Exit Sub
End If
End Sub
回复

使用道具 举报

 楼主| 发表于 2014-5-8 10:44 | 显示全部楼层
dsmch 发表于 2014-5-8 05:20
Sub Macro1()
On Error Resume Next
Dim arr, brr, i&, zf$

谢谢你,谢谢。如果A列有数据,B,C没数据,能不能再加个提示:没有替代数据,就不执行代码。谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-18 17:36 , Processed in 0.365925 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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