雪之下路漫漫 发表于 2022-5-2 14:55:18

VBA问题求助,感谢大佬们

大佬们,求助一个VBA的问题。
这里我就是想把不连续重复的值加在一起放置于B2单元格。但是else后面自动加了个冒号:,而且会报错。希望有大佬看看是哪里有问题,谢谢

wp231957 发表于 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

wp231957 发表于 2022-5-2 20:16:45

主要是你的if   else   endif    啥也没干啊
k=k是神马鬼

雪之下路漫漫 发表于 2022-5-3 16:35:44

wp231957 发表于 2022-5-2 20:16
主要是你的if   else   endif    啥也没干啊
k=k是神马鬼

IF a1不等于a2,那么k就累加上a1的值。否则k保持现状。请问该怎么改呢?

新源 发表于 2022-5-4 10:45:17

每个with和if都有配对的end with和end if
用完就要end
结束时候也必须要使用else。

新源 发表于 2022-5-4 10:55:37

还有else怎么在end if 前面,这里应该也有语法错误,
k=k的赋值放在最后面,if   else   endif要与end相结合使用

雪之下路漫漫 发表于 2022-5-4 15:39:26

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

嗯嗯,但是我输入else也好,end if也好,都会报出没有if块的错误。这个我实在不知道怎么改。您可以帮忙改一下代码,让我看一下正确的应该怎么写吗?谢谢大佬。

wp231957 发表于 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

wp231957 发表于 2022-5-5 13:01:59

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

附效果图

18946033894 发表于 2022-5-6 16:21:32

可以使用字典功能,判断字典中是否有该数值,没有就添加,再把字典的内容输出给B列
页: [1]
查看完整版本: VBA问题求助,感谢大佬们