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