<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=236635&amp;view=findpost&amp;p=2003276</guid>
        <pubDate>Thu, 03 Jul 2008 05:59:49 +0000</pubDate>
        <title>Excel выдает ошибку &amp;quot;Invalid variant operation&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=236635&amp;view=findpost&amp;p=2003276</link>
        <description><![CDATA[bas_sanya: Спасибо большое,за объяснения, теперь мне все понятно<br>спасибо за то что не пожалели времени на написание ответа&#33;&#33;]]></description>
        <author>bas_sanya</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=236635&amp;view=findpost&amp;p=1975203</guid>
        <pubDate>Mon, 02 Jun 2008 11:09:04 +0000</pubDate>
        <title>Excel выдает ошибку &amp;quot;Invalid variant operation&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=236635&amp;view=findpost&amp;p=1975203</link>
        <description><![CDATA[GeForce: На сколько я могу судить по своему опыту ты сдорово портачишь.<br>
Дело в том что как ни крути Excel реальные данные из ячейки ты ни когда не получишь.<br>
Максимум чего можно достичь это получить объект Range. А вот через него ты можешь читать и писать и вообще делать все что хочешь с ячейкой. В твоем коде отсутсвует после Cells[1,2]. , а далее то что ты хочешь получить. Потому как Cells, если зайти в VBA и посмотреть объектную модель, возращает Range. А вот у него можно уже взять Value т.е. содержимое ячейки.<br>
Т.е. ... .Cells[1,2].Value <br>
Вот пример моего метода.<br>
<br>
<br>
procedure TFunctionBase.SheetInvestorSave(Investor: TInvestorWorking);<br>
var<br>
        SheetNow        : Variant; //лист рабочей книги<br>
        Row             : Integer;<br>
begin<br>
        SheetNow := GetSheet(1); //Получаю ссылку на лист.<br>
        Row := Investor.PersonInvestorData.ExcelProperty.Row;<br>
        SheetNow.Cells[Row,1].<strong class='tag-b'>Value</strong> := Investor.PersonInvestorData.IdentNum;<br>
        SheetNow.Cells[Row,2].Value := Investor.PersonInvestorData.FIO.FirstName;<br>
        SheetNow.Cells[Row,3].Value := Investor.PersonInvestorData.FIO.NextName;<br>
        SheetNow.Cells[Row,4].Value := Investor.PersonInvestorData.FIO.LastName;<br>
        SheetNow.Cells[Row,5].Value := Investor.PersonInvestorData.Address.PostIndex;<br>
        SheetNow.Cells[Row,6].Value := Investor.PersonInvestorData.Address.City;<br>
        SheetNow.Cells[Row,7].Value := Investor.PersonInvestorData.Address.Street;<br>
        SheetNow.Cells[Row,8].Value := Investor.PersonInvestorData.Address.House;<br>
        SheetNow.Cells[Row,9].Value := Investor.PersonInvestorData.Address.Flat;<br>
        SheetNow.Cells[Row,10].Value := Investor.PersonInvestorData.Pasport.Series;<br>
        SheetNow.Cells[Row,11].Value := Investor.PersonInvestorData.Pasport.Number;<br>
        SheetNow.Cells[Row,12].Value := Investor.PersonInvestorData.Pasport.Getdepartment;<br>
        SheetNow.Cells[Row,13].Value := Investor.PersonInvestorData.Pasport.City;<br>
        SheetNow.Cells[Row,14].Value := Investor.PersonInvestorData.Pasport.GetDate;<br>
        SheetNow.Cells[Row,15].Value := Investor.PersonInvestorData.TelefonContct.Cellular;<br>
        SheetNow.Cells[Row,16].Value := Investor.PersonInvestorData.TelefonContct.TelephoneWorke;<br>
        SheetNow.Cells[Row,17].Value := Investor.PersonInvestorData.TelefonContct.TelephoneHome;<br>
        SheetNow.Cells[Row,18].Value := Investor.PersonInvestorData.Commentary;<br>
<br>
end;<br>
<br>
Investor. - это типизированная переменная. Все поля в основном string<br>
<br>
function TFunctionBase.GetSheet(i: Integer): Variant; //Получение нужного листа рабочей книги.<br>
var<br>
       SheetActNow     : Sheets;<br>
begin<br>
      SheetActNow := ExcelWorkbook.Sheets;<br>
      Result := SheetActNow.Item[i];<br>
end;<br>
<br>
Я работаю через сервера автоматизации. Там методы видны. Пишут, что более универсальный способ.<br>
<br>
Либо есть еще доступ к ячейкам через метод Item[row,Column] помоему свойство листа.]]></description>
        <author>GeForce</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=236635&amp;view=findpost&amp;p=1959453</guid>
        <pubDate>Sun, 18 May 2008 13:08:05 +0000</pubDate>
        <title>Excel выдает ошибку &amp;quot;Invalid variant operation&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=236635&amp;view=findpost&amp;p=1959453</link>
        <description><![CDATA[Albinos_X: да и смотри чтоб ячейка не была пустой...]]></description>
        <author>Albinos_X</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=236635&amp;view=findpost&amp;p=1957515</guid>
        <pubDate>Fri, 16 May 2008 08:05:01 +0000</pubDate>
        <title>Excel выдает ошибку &amp;quot;Invalid variant operation&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=236635&amp;view=findpost&amp;p=1957515</link>
        <description><![CDATA[Romkin: Скорее всего в одной из ячеек у тебя не число :)<br>Смотри на разделители дробной части.]]></description>
        <author>Romkin</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=236635&amp;view=findpost&amp;p=1957441</guid>
        <pubDate>Fri, 16 May 2008 07:00:27 +0000</pubDate>
        <title>Excel выдает ошибку &amp;quot;Invalid variant operation&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=236635&amp;view=findpost&amp;p=1957441</link>
        <description><![CDATA[bas_sanya: Добрый день такая проблема при выполнении в Delphi следующего кода, происходит ошибка &quot;Invalid variant operation&quot;:<br>
<br>
var excel: variant;<br>
fileexcel : string;<br>
 Wbk: OleVariant;<br>
 i: integer;<br>
 sum : real;<br>
<br>
begin<br>
    Excel:=CreateOleObject(&#39;Excel.Application&#39;);<br>
   fileexcel:=&#39;D:&#092;...&#092;Blank_for_sign_test.xls&#39;;<br>
<br>
      WBk:=Excel.WorkBooks.Open(FileExcel);<br>
      excel.visible:=true;<br>
<br>
sum:=0;<br>
    for i:=1 to 1000 do<br>
<br>
         if  Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1, 4]=Excel.ActiveWorkBook.WorkSheets[2].Cells[2, 2] and  <br>
             Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1, 5]=1 then<br>
              begin<br>
                   sum:=sum+Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1, 8];      <br>
              end;<br>
end;<br>
Как я понял не нравиться ему мой &quot;sum&quot;, а чего, понять уже не могу (((<br>
 Прошу вашей помощи, заранее спасибо]]></description>
        <author>bas_sanya</author>
        <category>Delphi: Система, Windows API</category>
      </item>
	
      </channel>
      </rss>
	