2015-06-01 149 views
1

这部分代码打开一个Excel文件并将范围D4:D5中的数据加载到一个主表中。从范围变量

GetData myFile, "Vystupna_kontrola", "D4:D5", Sheets("test_zila").Range(Sheets("test_zila").Cells(Sheets("test_zila").Cells(Rows.Count, 1).End(xlUp).Row + 1, 1), Sheets("test_zila").Cells(Sheets("test_zila").Cells(Rows.Count, 1).End(xlUp).Row + 1, 1)), True, False 

我想D4:D5范围用作变量,将从数组中加载。

Dim nazov(1 To 2) As String 

nazov(1) = "D4:D5" 
nazov(2) = "S4:S5" 


For i = 2 To UBound(nazov) 


GetData myFile, "Vystupna_kontrola", "nazov(i)", Sheets("test_zila").Range(Sheets("test_zila").Cells(Sheets("test_zila").Cells(Rows.Count, i).End(xlUp).Row + 1, i), Sheets("test_zila").Cells(Sheets("test_zila").Cells(Rows.Count, i).End(xlUp).Row + 1, i)), True, False 


     Next i 

但这不起作用。你能帮我用代码吗?

+0

的价值在这里是什么*不起作用*? – pnuts

+0

我相信你试图把两个单元格的内容放到一个变量中。除非你指定你感兴趣的值(总和,产品,连接,范围),否则这将不起作用。 – user3819867

+1

“nazov(i)” - 如果我用变量更改D4:D5 ..变量不返回D4 :D5值... – trenccan

回答

2

开始循环从i = 1并删除",这样就可以通过阵列nazov

For i = 1 To UBound(nazov) 
GetData myFile, "Vystupna_kontrola", nazov(i), Sheets("test_zila").Range(Sheets("test_zila").Cells(Sheets("test_zila").Cells(Rows.Count, i).End(xlUp).Row + 1, i), Sheets("test_zila").Cells(Sheets("test_zila").Cells(Rows.Count, i).End(xlUp).Row + 1, i)), True, False 
Next i 
+1

替代地:'对于i = LBound(nazov)对于UBound(nazov)',这样你将得到完整的数组,无论它如何定义。 – FreeMan

+0

@FreeMan:是的,更普遍 – Dawid