从文本中读数据,格式如下
101     财务部    002    40000
103     生产部    012      500
109     IT部      011     6000
999     其它               900要从中分解出第一列和第4列数据。请问有什么好办法吗?

解决方案 »

  1.   

    Split函数
          描述返回一个下标从零开始的一维数组,它包含指定数目的子字符串。语法Split(expression[, delimiter[, count[, compare]]])Split函数语法有如下几部分:部分 描述 
    expression 必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。 
    delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。 
    count 可选的。要返回的子字符串数,–1表示返回所有的子字符串。 
    compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。 
    设置值compare参数的设置值如下:常数 值 描述 
    vbUseCompareOption –1 用Option Compare语句中的设置值执行比较。 
    vbBinaryCompare 0 执行二进制比较。 
    vbTextCompare 1 执行文字比较。 
    vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。 
      

  2.   

    http://community.csdn.net/Expert/topic/5655/5655789.xml?temp=.819317
    看上去类似
      

  3.   

    不行啊,用split前三行得到4个子串,但第4行只有3个子串。
      

  4.   

    每一列的宽度是固定的,如果有方法能够读取固定宽度的列应该也能解决这个问题。但是我不会,只好一行一行的读出来,再在字符串里用mid函数截,但是中文的长度在文件里占两位,而字符串里只算1位。
      

  5.   

    字符宽度好解决
    Private Sub Command1_Click()
        Dim s As String, t As String
        s = "123我们abc"
        t = StrConv(s, vbFromUnicode)
        s = MidB(t, 2, 5)
        s = StrConv(s, vbUnicode)
        Print s
    End Sub
      

  6.   

    StrConv配合MidB,就可以实现中文在字符串操作里面也占两位了