Vba 将一个数组复制到另一个数组

Vba 将一个数组复制到另一个数组,vba,excel,Vba,Excel,我的Sub不断地出现错误,以“结尾,您可能不需要所有这些变量 仰望 这显然是假设您的路径始终采用以下格式驱动器:\FOLDER\SUB您可能不需要所有这些变量 仰望 这显然是假设您的路径始终是以下格式的驱动器:\FOLDER\SUB根据Microsoft的要求,如果需要,您可以使用比较方法。在这种情况下,基本拆分可能就足够了 Optional ByVal Compare As CompareMethod = CompareMethod.Binary 用于二进制比较,或 Optional By

我的Sub不断地出现错误,以“结尾,您可能不需要所有这些变量

仰望


这显然是假设您的路径始终采用以下格式
驱动器:\FOLDER\SUB

您可能不需要所有这些变量

仰望


这显然是假设您的路径始终是以下格式的
驱动器:\FOLDER\SUB

根据Microsoft的要求,如果需要,您可以使用比较方法。在这种情况下,基本拆分可能就足够了

Optional ByVal Compare As CompareMethod = CompareMethod.Binary 
用于二进制比较,或

Optional ByVal Compare As CompareMethod = CompareMethod.Textual 
对于文本,然后使用拆分:

Split(EnteredPaty, ":", ,CompareMethod.Text) 
您将拥有一个{Lastname,Firstname}数组,因此您只需使用
namesArray(0)&“&namesArray(1)
即可获得Lastname Firstname

按基本形式拆分函数:

Split(Entered_Path, ":")

根据微软的说法,如果需要,您可以使用比较方法。在这种情况下,基本的分割可能就足够了

Optional ByVal Compare As CompareMethod = CompareMethod.Binary 
用于二进制比较,或

Optional ByVal Compare As CompareMethod = CompareMethod.Textual 
对于文本,然后使用拆分:

Split(EnteredPaty, ":", ,CompareMethod.Text) 
您将拥有一个{Lastname,Firstname}数组,因此您只需使用
namesArray(0)&“&namesArray(1)
即可获得Lastname Firstname

按基本形式拆分函数:

Split(Entered_Path, ":")

我认为错误是由数组声明引起的

您几乎没有选择

  • Dim Full_Path()
    更改为
    Dim Full_Path
    Dim Full_Path()作为字符串
    (推荐)

  • 同时删除语句
    Dim Full_Path()

  • Dim Full_Path()
    声明为
    Dim Full_Path(2)作为字符串

    在这种情况下,必须循环遍历数组或按索引获取数组来放置内容

    e、 g.
    完整路径(0)=拆分(输入路径“:”,vbTextCompare)(0)


  • 我相信这个错误是由数组声明引起的

    您几乎没有选择

  • Dim Full_Path()
    更改为
    Dim Full_Path
    Dim Full_Path()作为字符串
    (推荐)

  • 同时删除语句
    Dim Full_Path()

  • Dim Full_Path()
    声明为
    Dim Full_Path(2)作为字符串

    在这种情况下,必须循环遍历数组或按索引获取数组来放置内容

    e、 g.
    完整路径(0)=拆分(输入路径“:”,vbTextCompare)(0)


  • 将vbTextcompare更改为CompareMethod.Text和完整路径作为字符串数组

    Sub Set_Folder(Entered_Path As String)
    'this function wil point to the folder that you want your data be saved into
        Dim Drive As String, Folder As String
        'Dim Full_Path()  <--- Look HERE
    
        'Assign this to a Public Variable
        Path = Entered_Path
    
        Dim Full_Path As String() = Split(Entered_Path, ":")   
        <--- Look ABOVE
    
        Drive = Full_Path(0)
        Folder = Full_Path(1)
    
        ChDrive Drive
        ChDir Folder
    End Sub
    
    子集合\u文件夹(以字符串形式输入\u路径)
    '此函数将指向您希望将数据保存到的文件夹
    将驱动器设置为字符串,文件夹设置为字符串
    
    'Dim Full_Path()将vbTextcompare更改为CompareMethod.Text和Full_Path作为字符串数组

    Sub Set_Folder(Entered_Path As String)
    'this function wil point to the folder that you want your data be saved into
        Dim Drive As String, Folder As String
        'Dim Full_Path()  <--- Look HERE
    
        'Assign this to a Public Variable
        Path = Entered_Path
    
        Dim Full_Path As String() = Split(Entered_Path, ":")   
        <--- Look ABOVE
    
        Drive = Full_Path(0)
        Folder = Full_Path(1)
    
        ChDrive Drive
        ChDir Folder
    End Sub
    
    子集合\u文件夹(以字符串形式输入\u路径)
    '此函数将指向您希望将数据保存到的文件夹
    将驱动器设置为字符串,文件夹设置为字符串
    
    “Dim Full_Path()Split返回字符串数组,因此要将返回的数组分配给动态数组,它们必须是相同的类型:

    Dim Full_Path() As String
    

    Split返回字符串数组,因此要将返回的数组分配给动态数组,它们必须是相同的类型:

    Dim Full_Path() As String
    

    +1在这种情况下要优雅得多!对于复杂的版本,请参见我的答案!+1在这种情况下要优雅得多!对于复杂的版本,请参见我的答案!++用于实际指出错误。如果不提供大小,则无法对数组进行尺寸标注。“动态”“版本将是一个变体数组
    Full_Path
    ,它将采用代码放入其中的任何内容。
    Full_Path()
    Dim
    ing阶段需要一个大小it@Rory好吧,你不能用它?除非您实际为其分配了另一个相同类型的数组?如果您声明了一个没有维度的动态数组
    Dim someArray()
    ,那么您可以一次将相同类型的数组分配给它,或者使用
    ReDim
    调整大小(在这种情况下,您实际上不需要原始
    Dim
    语句)并像任何其他数组一样填充。++,用于实际指向错误。如果不提供大小,则无法对数组进行尺寸标注。“动态”版本将是一个变体数组
    Full_Path
    ,它将采用代码放入其中的任何内容。
    Full_Path()
    Dim
    ing阶段需要一个大小it@Rory好吧,你不能用它?除非您实际为其分配了另一个相同类型的数组?如果您声明了一个没有维度的动态数组
    Dim someArray()
    ,那么您可以一次将相同类型的数组分配给它,或者使用
    ReDim
    调整大小(在这种情况下,您实际上不需要原始
    Dim
    语句)和其他数组一样进行填充。@RossC这只适用于VB.NET,这个问题是关于VBA的@我看到了无人机啊,我没有意识到,我在VBA工作时也有类似的分裂,但你是对的。我在回答中给出了更一般的版本。但是这表明它没问题。@RossC似乎有相当多的
    CompareMethod.Binary
    在网上VBA中使用的例子。除非您的代码中有一个名为
    CompareMethod
    的枚举,否则它不应该工作。不过,我希望看到一个反例!:)@我看到了你看错人了!:)我对这方面的知识还远远不够,在这一点上我肯定会向你自己低头的!我有一个朋友,他很喜欢这个挑战,因为他就是这样@这只适用于VB.NET,这个问题是关于VBA的@我看到了无人机啊,我没有意识到,我在VBA工作时也有类似的分裂,但你是对的。我在回答中给出了更一般的版本。但是这表明它没问题。@RossC似乎有相当多的
    CompareMethod.Binary
    在网上VBA中使用的例子。除非您的代码中有一个名为
    CompareMethod
    的枚举,否则它不应该工作。我希望看到一个反例