2016-04-18 117 views
0

我在尝试链接到工作簿。然后删除链接。当给出完整路径时,公式正常工作,但在传递字符串时失败。在下面的vba中,我试图从Sheet1中的单元格值中给出文件位置的名称。使用.formula使用vba excel

'Location of Template and Country 
    Cntryloc = """" & Sheet1.Range("B5") & """" 
    Debug.Print Cntryloc 
    TempLoc = "" & Sheet1.Range("B11") & "" 
    Finaltemplloc = Sheet1.Range("B17") 

    i=2 

    'Getting the name of excel Sheet 
    CntryExcel = Sheet1.Range("C5") 

    TempLoc = "" & Sheet1.Range("B11") & "" 
    Workbooks.Open TempLoc & "\" & "Bank" & ".xlsx", True, False 
    Workbooks("" & FName & ".xlsx").Activate 
    ActiveWorkbook.Unprotect Password:="Tall.Trees" 
    Worksheets("Template").Unprotect Password:="Tall.Trees" 
    Worksheets("Template").Range("D14").Formula = "='&"["&CntryExcel&"]Dump"&"'"&"!"&"$A$" & i"" 
    ActiveWorkbook.BreakLink Name:=Cntryloc, Type:=xlExcelLinks 
     Worksheets("Template").Protect Password:="Tall.Trees" 
    ActiveWorkbook.Protect Password:="Tall.Trees" 

    'Location for Final Output 

    ActiveWorkbook.SaveAs Filename:=Finaltemplloc & "\" & Bank.xlsx 
    ActiveWorkbook.Close 
+0

您正试图从何处移除链接? –

+0

转储是一个表名称? –

+0

是转储是工作表名称,我试图删除链接到国家档案..下面的公式是工作,但我希望它是动态的,下面的代码工作,如果放在上面正确的地方:Workbooks.Open“Z: \ TCRM = CCR \ CountryRIR \ TallTree \ Templates \“&FName&”.xlsx“,True,False 工作表(”Template“)。Range(”D14“)。Formula =”='[country list.xlsm]转储'!$ A $'&i&“” ActiveWorkbook.BreakLink名称:=“Z:\ TCRM = CCR \ CountryRIR \ TallTree \ country list.xlsm”,类型_ := xlExcelLinks –

回答

0

尝试用这种

Worksheets("Template").Range("D14").Value = "='[" & CntryExcel & "]Dump'!" & "$A$" & i & ActiveWorkbook.BreakLink & "Name:=" & Cntryloc & ", Type:=" & xlExcelLink 
0

试试这个

Worksheets("Template").Range("D14").Formula = "='[" & CntryExcel & "]Dump!$A$" & "i" 

应该固定公式输入

但检查CntryExcel举行工作簿的名称,而不是一个工作表名称根据您的评论在其初始化之前('Getting the name of excel Sheet