Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Excel中取消选择单元格?使用Matlab创建一个图表,用makred区域值添加图形_Excel_Matlab_Charts_Com - Fatal编程技术网

如何在Excel中取消选择单元格?使用Matlab创建一个图表,用makred区域值添加图形

如何在Excel中取消选择单元格?使用Matlab创建一个图表,用makred区域值添加图形,excel,matlab,charts,com,Excel,Matlab,Charts,Com,Excel 2016会记住关闭文件前最后一次“标记”(选定)的单元格,并在下次打开文件时标记相同的单元格 不标记区域的唯一方法是使用例如Matlab创建的未触及文件 如何使用Matlab在Excel中取消标记所有区域? 在我的程序(下面的代码)中,我使用Matlab访问现有的Excel文件。代码将创建一个具有设置范围的新图表 不幸的是,图表中总是创建了更多的图形,范围中总是选择了更多的图形。为了更直观,matlab文件中选定的区域将添加为新图形。(当它为空时,仍将添加一个空图形) 在这里您可以看

Excel 2016会记住关闭文件前最后一次“标记”(选定)的单元格,并在下次打开文件时标记相同的单元格

不标记区域的唯一方法是使用例如Matlab创建的未触及文件

如何使用Matlab在Excel中取消标记所有区域? 在我的程序(下面的代码)中,我使用Matlab访问现有的Excel文件。代码将创建一个具有设置范围的新图表

不幸的是,图表中总是创建了更多的图形,范围中总是选择了更多的图形。为了更直观,matlab文件中选定的区域将添加为新图形。(当它为空时,仍将添加一个空图形)

在这里您可以看到标记区域:

然后,在运行代码后,该代码将添加为一个图形,精确显示标记的范围为:


带有代码和信息的原始程序,用于理解项目: 最初目标:

  • 使用Matlab在已存在的
    .xlsx
    文件中自动创建图表
  • 轻松自由选择范围、X值和Y值(按页和列)
  • 适用于
    .xlsx
    文件上的所有大小。(最多20.000行、50列和多张图纸)

一般问题:

  • 未接触的文件可以工作
  • 每隔一个文件都会添加额外的图形

代码:

代码的作用: 当它工作时,将创建一个新图表,其中a列为X值,第3至7列为Y值,列的
colnames

当它不工作时,它会做与工作时相同的事情,但会向图表中添加更多的图形。Tp确切地说,它将文件的每一列添加为Y值,而不添加X值(因此1,2,3,4…),使用第一行作为它们的名称

问题摘要
  • 有没有办法使用Matlab代码在Excel中取消标记、取消选择区域
  • 你知道问题出在哪里吗
  • 有什么有用的解决办法吗

    • 我找到了一个解决办法。或者更多地解决这个问题

      因此:问题是,即使在您选择自己的数据和X值和Y值之前,预选的单元格也会自动显示在图表中

      解决方案: 在自动创建图表和选择您自己的数据的步骤之间清除图表

      为此,只需在
      SheetObj=Excel.Worksheets.get('Item','Tabelle1')之后放置一行

      因此,在选择要填充的数据之前,图表将为空

      这对我有用。。。希望它也能帮助你

      % Start Excel and open workbook
      Excel = actxserver('Excel.Application');  
      WB = Excel.Workbooks.Open('C:\...\test.xlsx');
      %the workbook
      Excel.visible = 1;
      % Add chart
      Chart = invoke(WB.Charts,'Add');
      % Get Sheet object
      SheetObj = Excel.Worksheets.get('Item', 'Tabelle1'); % 'Tabelle1' is german Ecel equation for 'sheet1'
      %% FORMATTING %%
      % Name chart sheet
      Chart.Name = 'TestChart';
      % Set chart type
      Chart.ChartType = 'xlXYScatterSmoothNoMarkers'; 
      % Set chart title,  see https://msdn.microsoft.com/en-us/library/office/ff196832.aspx
      Chart.HasTitle = true;
      Chart.ChartTitle.Text = 'Test Title';
      % Set chart legend, see https://msdn.microsoft.com/en-us/library/office/ff821884.aspx
      Chart.HasLegend = true;
      %% Set source data range of chart, do X and Y data for each series    
      columns = 3:7; % set columns 3 to 7 as Y-Values
      %%
      colnames = {'xdata', 'my series 1', 'my series 2', 'my series 3','my series 4','my series 5','my series 6', 'my series 7', 'my series 8','my series 9'};
      for col = columns
            %% Get Excel column *letter* from column *number*
          colchar = strrep([char(96+floor((col-1)/26)) char(97+rem(col-1,26))],char(96),'');
           % Last row of data, see https://msdn.microsoft.com/en-us/library/office/ff839539.aspx
            %% Data must be contiguous (no gaps / blank cells)
          lastrow = num2str(SheetObj.Range([colchar, '2']).End('xlDown').Row);
            %% Y data, creating range strings by concatenation of column character and row number
          Srs = Chart.SeriesCollection.Add(SheetObj.Range([colchar, '2:', colchar, lastrow]));
            %% X data, same approach is used for last row, but only column = 1 = "A" 
          Srs.XValues = SheetObj.Range(['A2:A', lastrow]); % set column A as X-Value
           %% Set column name
      
          Srs.Name = colnames{col};
      end
      
      %% Clear content 
      Chart.ChartArea.ClearContents;