View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
joel joel is offline
external usenet poster
 
Posts: 9,101
Default SpecialCells method of Range class failed

You need to specify a worksheet and a range of cells

for example from excel VBA
set rng = activesheet.cells
or
set rng = activesheet.column("A")

Normally from another application you create a sheet. this would be the
macro from Microsoftword for creating ax excel object

Set ExcelSheet = CreateObject("Excel.Sheet")

You didn't post the functions that creates the excel object so I don't know
exactly what "rng" is set to.




"Sergei Emelyanenkov" wrote:

I tried to activate worksheet and select the range, but it doesn't help.
Exception still arises.
I can't work through this issue with VBA, because VBA Editor disabled (in my
instance of Excel 2003) when cursor is in Formula Bar. A part of C# code I've
used:

using Excel = Microsoft.Office.Interop.Excel;

Excel.Application objExcelApp = GetExcelApp(); // Custom function to
receive Excel application object.
Excel.Range rng =(Excel.Range)objExcelApp.Selection; // Get selected
cells. Works fine, even through cursor is in Formula Bar.
rng.Worksheet.Activate();
rng.Select();
Excel.Range objRngVisible =
rng.SpecialCells(Excel.XlCellType.xlCellTypeVisibl e, Type.Missing); // Get
only visible cells from selection. Exception here :(


"Joel" wrote:

Use Activate to select a worksheet and Select to move the cursor to the
worksheet.

Sheets("Sheet1").Activate
Range("A1").Select

"Sergei Emelyanenkov" wrote:

Hi,

I use Range.SpecialCells method (C#, Excel 2003) to filter visible cells. It
works fine, but if cursor is in Formula Bar it rises an exception
"System.Runtime.InteropServices.COMException (0x800A03EC): SpecialCells
method of Range class failed".
Can I force Range.SpecialCells to work in this situation? Or can I, at
least, determine that cursor is in Formula Bar?

In some cases (including described above) Excel's Visual Basic Editor
becomes disabled. It seems, it was made intentionally to prevent Excel
automation. Can anybody explain this situation? And how can I treat it in C#.

Thank you in advance!
Sergei.