Excel精英培训网

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

[已解决]一个判断的VBA程序!

[复制链接]
发表于 2013-10-29 01:25 | 显示全部楼层 |阅读模式
本帖最后由 wszbd 于 2013-10-29 14:30 编辑

新建 Microsoft Excel 工作表.rar (1.98 KB, 下载次数: 13)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-10-29 07:59 | 显示全部楼层
  1. Sub ep()
  2.     Dim m As Integer, temp As Integer
  3.     Dim i As Integer
  4.     m = Sheets(1).Range("A1").Value
  5.     For i = 1 To 3
  6.         temp = Abs(Mid(m, i, 1) - i) * 10 ^ (3 - i) + temp
  7.     Next i
  8.     Sheets(1).Range("C1") = temp
  9. End Sub
复制代码
回复

使用道具 举报

发表于 2013-10-29 08:41 | 显示全部楼层
本帖最后由 yyyydddd8888 于 2013-10-29 08:42 编辑

请测试
新建 Microsoft Excel 工作表.rar (7.45 KB, 下载次数: 6)
回复

使用道具 举报

发表于 2013-10-29 09:23 | 显示全部楼层
本帖最后由 sliang28 于 2013-10-29 14:05 编辑
  1. Sub sliang28()
  2.     Dim arr(0 To 2)
  3.     mynub = Range("A1")
  4.     For i = 1 To 3
  5.         arr(i - 1) = Val(Mid(mynub, i, 1))
  6.     Next
  7.     If Application.Max(arr) - Application.Large(arr, 2) = 1 And Application.Large(arr, 2) - Application.Min(arr) = 1 Then
  8.         For i = 1 To 3
  9.            result = result & Abs(Mid(mynub, i, 1) - i)
  10.         Next
  11.     End If
  12.     [c1] = result
  13. End Sub
复制代码
这样的话容易理解,应该不会有错了
回复

使用道具 举报

 楼主| 发表于 2013-10-29 13:37 | 显示全部楼层
yyyydddd8888 发表于 2013-10-29 08:41
请测试

老师好:
           这个程序还有点小毛病,如果A1中是123  132,那么就有小错误。
   老师可否给修改一下。
谢谢!!!
回复

使用道具 举报

发表于 2013-10-29 13:47 | 显示全部楼层    本楼为最佳答案   
wszbd 发表于 2013-10-29 13:37
老师好:
           这个程序还有点小毛病,如果A1中是123  132,那么就有小错误。
   老师可否给修改 ...

是否想要这样?
新建 Microsoft Excel 工作表.zip (7.88 KB, 下载次数: 16)
回复

使用道具 举报

 楼主| 发表于 2013-10-29 14:25 | 显示全部楼层
yyyydddd8888 发表于 2013-10-29 13:47
是否想要这样?

谢谢!!!
回复

使用道具 举报

 楼主| 发表于 2013-10-29 14:27 | 显示全部楼层
sliang28 发表于 2013-10-29 09:23
这样的话容易理解,应该不会有错了

结果有点错误。
是两个如果。
问题解决了,谢谢你老师!!!

点评

两个如果是那两个如果,我的理解是一个三位数由三个连续的自然数组成,则返回-1\12\-3,否则返回原数  发表于 2013-10-29 14:34
回复

使用道具 举报

 楼主| 发表于 2013-10-29 14:29 | 显示全部楼层
CheryBTL 发表于 2013-10-29 07:59

结果有点错误。
是两个如果。
问题解决了,谢谢你老师!!!
回复

使用道具 举报

 楼主| 发表于 2013-10-29 14:54 | 显示全部楼层
sliang28 发表于 2013-10-29 09:23
这样的话容易理解,应该不会有错了

如果A1不是连续的自然数,那么C1里没有返回
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-13 22:10 , Processed in 0.301400 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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