Dim bytA() as byte
Dim strB as string
直接给bytA赋值,可以通过,例如bytA="a"是可行的(注意,是bytA而不是bytA())。
当要查看bytA()被赋了什么值的时候可以用strB=bytA(0).但是如果定义了数组的长度,例如
Dim bytA(3) as byte
显然不可以用bytA="a",必须用bytA(n)="a"(n从0到3的任一数),给数组的元素赋值。现在问想问当没有规定数组长度的时候bytA="a"是个这个数组的第一个元素赋值吗?即只是赋值给了bytA(0)吗?

解决方案 »

  1.   

    全赋值了:
    Private Sub Command1_Click()
    Dim ByteA() As Byte
    Dim a As String
    a = "Hello World"
    ByteA = a
    For i = 0 To UBound(ByteA) - 1
      Debug.Print Chr(ByteA(i))
    Next
    End Sub
      

  2.   

    中文也一样的,如:
    Private Sub Command1_Click()
    Dim ByteA() As Byte
    Dim a As String
    Dim s As String
    a = "我就测试给你看,不对吗?"
    ByteA = a
    For i = 0 To UBound(ByteA) - 1
      Debug.Print Chr(ByteA(i))
    Next
    s = ByteArrayToString(ByteA, UBound(ByteA))
    Debug.Print s
    End Sub
    Function ByteArrayToString(hex() As Byte, size As Long) As String
        Dim i As Long, c As Byte
        Dim str As String
        str = ""
        For i = 0 To size
                str = str & ChrB(hex(i))
        Next i
        ByteArrayToString = str
    End Function
      

  3.   

    呵呵,我没说不可以,只是提个问题让楼主思考。
    我给个更简单的。而且需要的数组元素更少Dim data() As BytePrivate Sub Command1_Click()
    Dim str As String
    str = StrConv(data(), vbUnicode)
    MsgBox str
    End SubPrivate Sub Form_Load()
    data = StrConv("HELLO 你好", vbFromUnicode)
    End Sub