2016-12-26 61 views
0

我有一個Excel模板,默認情況下示出了「用戶」運行Excel文件,(使用公式=INDEX(user; 1)內的動態驗證列表,用戶是一個name range那在當前的「用戶」首先所示的運行時間錯誤1004放置INDEX公式單元

一旦模板被完全填充,紙張被複制到一個新文件和新的文件中獲取的通過e-電子郵件發送。

因爲「用戶「在打開新文件時發生變化,我需要編輯將驗證的值粘貼到模板中,然後複製圖紙。

我的想法是因爲模板可以被清除以重新使用,使公式重新進入單元格。我試過使用Worksheets("template").Range("D3").Formula = "=INDEX(user; 1)",但我得到runtime error 1004 application defined or object defined error

請指教。我提出了更廣泛的想法,以便爲我想要實現的目的提供替代解決方案。

+2

更改';'到','。 VBa非常以美國英語爲中心。當VBa將公式放在工作表excel中時,將更改爲您的本地設置。 –

回答

0

我建議使用撥款FileFormatxlOpenXMLTemplateMacroEnabled如果模板有宏或xlOpenXMLTemplate如果沒有宏)你「Excel模板」工作簿保存爲真正的Excel模板

如果保存模板與程序,你可以使用這些行:

ActiveWorkbook.SaveAs _ 
    Filename:="Workbook FullName.xltm", _ 
    FileFormat:=xlOpenXMLTemplateMacroEnabled, _ 
    Password:="If Required", WriteResPassword:="If Required", _ 
    ReadOnlyRecommended:=False, CreateBackup:=False 

    Rem Replace these lines if template has no macros 
    'Filename:="Workbook FullName.xltx", _ 
    'FileFormat:=xlOpenXMLTemplate, _ 

當用戶雙擊該工作簿模板中的原始模板工作簿的副本被打開,留下原始模板完好無損,所以有將不需要重新設置重新使用的公式。

如果模板是由程序打開,而不是用戶的DoubleClick使用此行:

Workbooks.Open Filename:="Workbook_FullName.xltm", Editable:=True 

看到Save a workbook or worksheet as a templateSave a workbook as a template