Excel精英培训网

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

[已解决]VBA初学者,知道是错的,不知道为什么是错的求 解答

[复制链接]
发表于 2021-8-14 21:16 | 显示全部楼层 |阅读模式
题目: 任意选取本工作表中的一个区域,然后把选取区域中的大于0的数字替换为字符“正数”出 来的结果是全都换成了正数
知道这样做是错的,就是不知道哪里错了,为什么这样是错的?刚学感觉好难

答:

Sub text()
Dim i As Range
For Each i In Selection
If i > 0 Then
i = "正数"
End If
Next
End Sub





最佳答案
2021-8-15 10:05
Sub text()
    Dim i As Range
   
    For Each i In Selection
        If VBA.IsNumeric(i) Then    '判断单元格内容是否为数字
            If i.Value > 0 Then
                i = "正数"
            End If
        End If
    Next
   
End Sub
发表于 2021-8-14 21:22 | 显示全部楼层
Sub text()
Dim i As Range
For Each i In Selection
If i.value > 0 Then
i = "正数"
End If
Next
End Sub




祝順心,南無阿彌陀佛!

回复

使用道具 举报

 楼主| 发表于 2021-8-15 09:35 | 显示全部楼层
cutecpu 发表于 2021-8-14 21:22
Sub text()
Dim i As Range
For Each i In Selection

这样也不行的,字母也都换成了正数
回复

使用道具 举报

发表于 2021-8-15 10:05 | 显示全部楼层    本楼为最佳答案   
Sub text()
    Dim i As Range
   
    For Each i In Selection
        If VBA.IsNumeric(i) Then    '判断单元格内容是否为数字
            If i.Value > 0 Then
                i = "正数"
            End If
        End If
    Next
   
End Sub
回复

使用道具 举报

 楼主| 发表于 2021-8-15 19:19 | 显示全部楼层
砂海 发表于 2021-8-15 10:05
Sub text()
    Dim i As Range
   

谢谢你。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 19:58 , Processed in 0.211358 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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