请教各位VB或编程高手个VSTO问题(已解决)

  • l
    liuxuu
    在VBA里
    dim a as range
    for each a in range("a1:b5")
    a = a+1
    next
    这样写,没问题

    写入VSTO为
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    myrange = Globals.ThisAddIn.Application.Selection
    m = myrange.Address
    Dim asd As excel.range
    For Each asd In Globals.ThisAddIn.Application.Range(m)
    asd.value = asd.value + 1
    Next

    [本帖最后由 liuxuu 于 2014-9-5 11:14 编辑]
  • s
    sumeru
    VB的语法不熟悉,看起来是 Dim asd As interger 这行有问题,你把一个Range类型赋给asd,asd也该声明成Range
  • z
    zxsoft
    楼上回答正确,for each in之间的变量类型肯定是数组或集合里面单个元素的类型。Range里面还是Range,你声明成integer明显不对,改为Range或者Varient即可
  • l
    liuxuu
    谢谢,但是改成excel.range后后面有没有办法实现+1的运算,怎么解决,谢谢。
  • l
    liuxuu
    谢谢,但是改成excel.range后后面有没有办法实现+1的运算,怎么解决,谢谢。
  • b
    breeze7086
    是不是需要加强制类型转换?
  • s
    sumeru
    你是想把range对应的cell的值加一吗,你试试用range.value(或者类似的属性)
    range.value = range.value+1
  • l
    liuxuu
    高手,就是缺了个value 谢谢了。今天的祭扫剩下的全加个你了

    [本帖最后由 liuxuu 于 2014-9-5 11:12 编辑]