使用ActiveX复制和粘贴不连续的Excel列时出现问题

时间:2019-08-09 13:34:09

标签: excel matlab activex

我想使用Matlab打开和处理许多Excel文件。任务是将区域复制并粘贴到新Excel工作簿中的新工作表中。通过连续选择行(例如,行1至3)但可能不连续选择列(例如,列1和3)来定义区域。要求是复制粘贴操作应保留注释。

必须保留注释的要求导致我使用ActiveX而不是xlsread和xlswrite。我可以打开,选择一个连续的选择并将其粘贴到一个新文件中,然后保存该文件,但是我无法使选择不连续。

以下几行是关键:

DataRange ='A1:C3'; % Select contiguous selection.
Sheet1.Range(DataRange).Copy; % Select the columns to copy.
Sheet2.Range('A1').PasteSpecial(13); % Paste, including comments.

到目前为止一切都很好,并且代码的行为符合预期。

然后,我尝试修改代码以应对非连续列,如下所示:

 DataRange = 'A1:A3, C1:C3'; % Only select first and third columns.

Matlab返回时出现不透明的错误消息(对象返回的错误代码0x800A03EC),而不是达到预期的结果,在该结果中选择并复制了行1至3和A和C列的内容。

很不幸,我的VBA技能不存在,我也不知道如何进行。如果有人可以使用此简单示例将我指向正确的方向,我将不胜感激。

0 个答案:

没有答案