“BC30311:类型'String'的值无法转换为String()”尝试从数组中提取单个值时出错

时间:2017-01-20 01:35:48

标签: vb.net visual-studio

我目前正在尝试制作一个利用API自动向人们发送短信的程序。

数据(名称和数字)是从excel电子表格中收集的,它们以长字符串的形式出现,然后使用“:”分隔符将其放入visual basic中的两个数组中。

现在我正在尝试遍历数组中的每个项目并使用名称和数字发送文本,这是我的代码:

Dim oxl As excel.application
        Dim owb As excel.workbook
        Dim osheet As Excel.worksheet
        Dim orng As excel.Range
        Dim path As String
        Dim name As String
        Dim number As String
        Dim nameArray() As String
        Dim numberArray() As String

    Dim client As Client = New Client("API CODE")


    path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)

    oxl = CreateObject("Excel.application")
    owb = oxl.Workbooks.Open(Filename:=path & "\SMS.xlsm")

    name = oxl.Run("getname")
    number = oxl.Run("getnomber")

    nameArray = Split(name, ":")
    numberArray = Split(number, ":")


    For i = 0 To UBound(nameArray)


        client.SendSms(originator:="TEST", body:="this is a test mr" & nameArray(i) & " hello", numbers:=numberArray(i))


    Next


    owb.Close()
    owb = Nothing

    oxl.Quit()
    oxl = Nothing
    osheet = Nothing
    orng = Nothing

然而,这给了我以下错误:

Error   BC30311 Value of type 'String' cannot be converted to 'String()'.

我知道数组中填充了我想要的值,我知道我已经将变量明确地定义为数组,因为其他问题建议但我仍然得到相同的错误。

有人可以帮助我吗?

谢谢:)

1 个答案:

答案 0 :(得分:2)

对我来说这看起来像ZendSend.io。如果是问题就在这里:

  

client.SendSms(originator:=“TEST”,body:=“这是一个测试先生”& nameArray(i)&“hello”,数字:= numberArray(i))

numbers:= 参数需要一个字符串数组,而您只传入一个字符串。简单的解决方案是将其写为具有一个元素的数组:

  

client.SendSms(originator:=“TEST”,body:=“this is a test mr”& nameArray(i)&“hello”,numbers:= {numberArray(i)})