假如动态数组a()中有4个元素a(0)="姓名",a(1)="性别",a(2)="学号",a(3)="成绩"
  如果我想把a(1)删除,使a()变为
  a(0)="姓名",a(1)="学号",a(2)="成绩"  请问用什么函数???可以实现,不要用笨办法,比如循环之类,就要一个函数。通过下标删除。

解决方案 »

  1.   

    字符串数组,可用Filter函数过滤
      

  2.   

    给你临时写一个函数function DeleteItem(aArray() as variant, ItemID as long)
        dim i as long
        for i=itemid to unound(aarray)-1
            aarray(i)=aarray(i+1)
        next
        redim preserve aarray(i)
    end function
      

  3.   

    晕!俺不要临时函数,俺只要一句话就能解决的。我这个数组是从: 姓名,学号,班级,年龄  这个字符串里用
    Split提取出来的大家帮忙啊。
      

  4.   

    MSDN中有说明,你不会看呀?哎!看你这么懒,我就勤快点,举个例子给你:strArray=Filter(strArray,"学号",False,vbTextCompare)
      

  5.   

    Option Explicit
    Private Sub Form_Load()
    Dim a() As String
    Dim str As String
    str = "姓名,学号,班级,年龄"               '初始字符串
    a = Split(str, ",")                       '形成数组
    a(1) = ""                                 '去除学号
    MsgBox Replace(Join(a, ","), ",,", ",")   '得到删除学号后的字符串
    End Sub
    测试已经通过
      

  6.   

    To:songyaowu(不以分多而蹭之;不以分少而不答;习惯不结贴者拒之) 大哥,你试过小吉的代码没有,他的对吗?他的这种方法是可以实现该功能,但还是有问题的,其实"学号"的位置还保留着,用join(strArray,",")得到的字符串在原来"学号"的位置上还有一个","。
    应该改成:
    strArray=Filter(strArray,"学号",False,vbTextCompare)
    msgbox Replace(Join(strArray, ","), ",,", ",")   '这才是要得到的结果
      

  7.   

    呵呵!myhgyp批评得对,应该试试再说话。
    那你试过我的代码吗?为什么说:字符串在原来"学号"的位置上还有一个","?
    真的这样吗?试试下面的代码:Private Sub Form_Load()
    Dim a() As String
    ReDim a(3)
    a(0) = "姓名"
    a(1) = "性别"
    a(2) = "学号"
    a(3) = "成绩"
    a = Filter(a, "学号", False, vbTextCompare)
    Debug.Print UBound(a)
    Debug.Print Join(a, ",")
    End Sub输出内容: 
     2 
    姓名,性别,成绩
      

  8.   

    To:homezj(小吉)
    试你的代码时是把你的代码放在我的测试代码中测试,因我的字符串中有两个",",导致测试错误,不好意思了,你的代码是对的。