2017-02-24 111 views
2

我试着下面的代码,以避免写太多的行(因为列表很长 - 超过134),但在尝试打开文件的行中出现错误。数组与参考文件的路径打开文件

下面是代码的一个想法:

Sub update_chemicals() 
'update chemical database with macroeconomic indicators 

'Dim local_main As String 

Dim mylocal As Variant 
Dim local_final As String 

Dim myname As Variant 
Dim name_final As String 

'disrectories references 
Dim local_1 As String 
Dim local_2 As String 
Dim local_3 As String 
Dim local_4 As String 
Dim local_5 As String 

'Files 
Dim name_1 As String 
Dim name_2 As String 
Dim name_3 As String 
Dim name_4 As String 
Dim name_5 As String 

'Coal 
local_1 = "G:\path\01. CARVAO\Carvao.V1.xlsm" 
name_1 = "Carvao.V1.xlsm" 

'Perlita 
local_2 = "G:\path\Perlita.xlsm" 
name_2 = "Perlita.xlsm" 

'Diatomaceus Earth 
local_3 = "G:\path\Terra_Diatomacea.xlsm" 
name_3 = "Terra_Diatomacea.xlsm" 

'Chloridric Acid 
local_4 = "G:\path\Chloridric_Acid_v2.xlsm" 
name_4 = "Chloridric_Acid_v2.xlsm" 

'Hexane and Gasoline 
local_5 = "G:\path\Price History - Hexane and Gasoline - PLATTS - Jan'17.xlsm" 
name_5 = "Price History - Hexane and Gasoline - PLATTS - Jan'17.xlsm" 


mylocal = Array("local_1", "local_2", "local_3", "local_4", "local_5") 

myname = Array("name_1", "name_2", "name_3", "name_4", "name_5") 

    '/////////////////////////////////////////////// COAL \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 

For x = 0 To 4 

    local_final = mylocal(x) 
    name_final = myname(x) 

     Workbooks.Open filename:=local_final 

当我尝试打开该文件

你能帮助我出现错误?

+1

除去周围的报价你Array(“local_1”,“local_2”...),以便它是Array(local_1,local_2 .......)与myname数组相同。 –

回答

3

mylocal = Array("local_1", "local_2", "local_3", "local_4", "local_5")

myname = Array("name_1", "name_2", "name_3", "name_4", "name_5")

这意味着你是从字面上存储在所述阵列local_1 & NAME_1和local_1 & NAME_1的不值。

+0

非常感谢大家!它的工作... –

2

替换这一行,你应该叫变量本身,变量名不是字符串:

mylocal =阵列(local_1,local_2,local_3,local_4,local_5)

+0

@Petter_Mendes请标记这是正确的答案,如果它为你工作。 TNX – Ibo