鱼C论坛

 找回密码
 立即注册
查看: 3956|回复: 9

[已解决]VBA问题求助,感谢大佬们

[复制链接]
发表于 2022-5-2 14:55:18 | 显示全部楼层 |阅读模式
40鱼币
大佬们,求助一个VBA的问题。
这里我就是想把不连续重复的值加在一起放置于B2单元格。但是else后面自动加了个冒号:,而且会报错。希望有大佬看看是哪里有问题,谢谢 VBA.png
最佳答案
2022-5-2 14:55:19
雪之下路漫漫 发表于 2022-5-4 15:39
嗯嗯,但是我输入else也好,end if也好,都会报出没有if块的错误。这个我实在不知道怎么改。您可以帮忙改 ...

还可以进一步简化:
Sub ooo()
  Dim i, j As Integer
  j = 1
  For i = 1 To 12
    If Range("a" & i + 1) <> Range("a" & i) Then
      Range("b" & j) = Range("a" & i).Value
      j = j + 1
    End If
 Next
End Sub

最佳答案

查看完整内容

还可以进一步简化:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-2 14:55:19 | 显示全部楼层    本楼为最佳答案   
雪之下路漫漫 发表于 2022-5-4 15:39
嗯嗯,但是我输入else也好,end if也好,都会报出没有if块的错误。这个我实在不知道怎么改。您可以帮忙改 ...

还可以进一步简化:
Sub ooo()
  Dim i, j As Integer
  j = 1
  For i = 1 To 12
    If Range("a" & i + 1) <> Range("a" & i) Then
      Range("b" & j) = Range("a" & i).Value
      j = j + 1
    End If
 Next
End Sub
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-2 20:16:45 From FishC Mobile | 显示全部楼层
主要是你的if   else   endif    啥也没干啊
k=k是神马鬼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-5-3 16:35:44 | 显示全部楼层
wp231957 发表于 2022-5-2 20:16
主要是你的if   else   endif    啥也没干啊
k=k是神马鬼

IF a1不等于a2,那么k就累加上a1的值。否则k保持现状。请问该怎么改呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-4 10:45:17 | 显示全部楼层
每个with和if都有配对的end with和end if
用完就要end
结束时候也必须要使用else。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-4 10:55:37 | 显示全部楼层
还有else怎么在end if 前面,这里应该也有语法错误,
k=k的赋值放在最后面,if   else   endif要与end相结合使用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-5-4 15:39:26 | 显示全部楼层
新源 发表于 2022-5-4 10:55
还有else怎么在end if 前面,这里应该也有语法错误,
k=k的赋值放在最后面,if   else   endif要与end相结 ...

嗯嗯,但是我输入else也好,end if也好,都会报出没有if块的错误。这个我实在不知道怎么改。您可以帮忙改一下代码,让我看一下正确的应该怎么写吗?谢谢大佬。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-5 13:00:14 | 显示全部楼层
雪之下路漫漫 发表于 2022-5-4 15:39
嗯嗯,但是我输入else也好,end if也好,都会报出没有if块的错误。这个我实在不知道怎么改。您可以帮忙改 ...

家里电脑没有微软的excel  
Sub ooo()
  Dim i, k As Integer
  Dim j As Integer
  j = 1
  For i = 1 To 12
    k = 0
    If Range("a" & i + 1) <> Range("a" & i) Then
      k = k + Range("a" & i).Value     'else k=k 实属无用语句  故可省略
    End If
    If k Then
      Range("b" & j) = k
      j = j + 1     '增加这个变量意思是 从第一行写入数值
    End If
  Next
End Sub
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-5 13:01:59 | 显示全部楼层
雪之下路漫漫 发表于 2022-5-4 15:39
嗯嗯,但是我输入else也好,end if也好,都会报出没有if块的错误。这个我实在不知道怎么改。您可以帮忙改 ...

附效果图
vba1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-6 16:21:32 | 显示全部楼层
可以使用字典功能,判断字典中是否有该数值,没有就添加,再把字典的内容输出给B列
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 09:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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