使用actxserver引用工作表之间的细胞

11视图(30天)
Sid
Sid 2015年8月4日
回答: Sid 2015年8月4日
大家好!
这个问题涉及到使用的使用 actxserver 对于一个excel的应用程序。
如何使用actxserver引用一个细胞从另一个表,类似于
ActiveCell。FormulaR1C1 =“C R [1] = Sheet2 !”
在一个excel宏?
到目前为止,我有如下:
clc;关闭所有;清晰的所有;
excel = actxserver (“excel.application”);
excel。可见= 1;%使它可见
%让excel不显示警报
集(excel,“DisplayAlerts”,0);
%使用excel模板——不一定需要手头的问题?
ExcelFile = fullfile (pwd,“helloWorld.xlsx”);
%打开excel文件
wkbk = excel.Workbooks.Open (ExcelFile);%这个文件有一个表命名为“1”,有一些安排
wksheet = wkbk.Worksheets.Item (1);%选择所需的表
n = 6
%复制模板表
wksheet.Copy (wksheet);%这将创建一个名为“1(2)”的表,在“1”
单张报纸= wkbk.Worksheets.Item (n - 1);%这个复制表处理
调用(单张报纸,“激活”)
ActivesheetRange_Title =得到(单张报纸,“范围”,“B2”);
ActivesheetRange_Title。值= (“董事会”“num2str (n - 1)];
ActivesheetRange_Date =得到(单张报纸,“范围”,“C3”);
ActivesheetRange_Date。值= datestr(现在,“名称”);
ActivesheetRange_Date.Interior。ThemeColor = 5;
ActivesheetRange_Date.cells.EntireColumn.AutoFit ();%最适合的行高列内容
ActivesheetRange_sessionName =得到(单张报纸,“范围”,“C4”);
ActivesheetRange_sessionName。值= datestr(现在,“HH00”);
ActivesheetRange_ImageName =得到(单张报纸,“范围”,“C5”);
ActivesheetRange_ImageName。值= (“董事会”“num2str (n - 1)];
业务通讯。Name = (“董事会”“num2str (n - 1)];%重命名一个新的名字
结束
%删除模板表
sheetToDelete = excel.ActiveWorkbook.Worksheets.Item (n);
调用(sheetToDelete“删除”);
%总结
summarySheet = excel.ActiveWorkbook.Worksheets.Item (n);
summarySheet_dateRange =得到(summarySheet,“范围”,C2的);
summarySheet_dateRange。值= datestr(现在,“名称”);
summarySheet_timeRange =得到(summarySheet,“范围”,“C3”);
summarySheet_timeRange。值= datestr(现在,“HH00”);
newWorkBookName = fullfile (pwd (datestr(现在,“yyyymmdd_HH00”)“.xlsx”]);
%的最后一点添加fomatting汇总表。
workbookSheetCount = wkbk.worksheet.count;
summarySheetAddress = excel.ActiveWorkbook.Worksheets.Item (workbookSheetCount);
m = 1:(workbookSheetCount-1)
%工作表中提取
worksheetToExtract = excel.ActiveWorkbook.Worksheets.Item (m);
worksheetToExtract_value =得到(worksheetToExtract,“范围”,“C7”);
%汇总表
sheetRangeToChange_contrastVal =得到(summarySheetAddress,“范围”,(“C”num2str (m + 5)]);
sheetRangeToChange_contrastVal。FormulaR1C1 =worksheetToExtract_value;
结束
从线96:107我需要帮助,我想设置表之间的关系。
任何帮助/方向将不胜感激。
提前谢谢。

接受的答案

Sid
Sid 2015年8月4日
很尴尬,但我还是设法解决这个问题,所以现在考虑事情已经结束。
对于那些和我一样可怜的VBA,关键是要参考FormulaR1C1文档。
sheetRangeToChange_contrastVal。FormulaR1C1 =“= Sheet2 ! R C [1]”
我想有一个更优雅的方式做到这一点,我很想学习。但我想我将离开这里,以防其他人发现它有用。

更多的答案(0)

类别

找到更多的在在MATLAB中使用COM对象帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!