• 0

C# Excel Add-in HELP!


Question

On my Form, this array is built then is sent to ThisAddin.cs


var inserts = new List<string> {mFunction, mColor, Convert.ToString(mQty), mFauc, Convert.ToString(mPrice)};

ThisAddIn.ExcelInsert(inserts.ToString());

[/CODE]

and here is where hell starts

[CODE]
public static void ExcelInsert(string mInsert)
{
try
{
// DOESNT WORK :(
var range = this.Application.ActiveCell() as Excel.Range;
range.Text.ToString(mInsert);
}
catch (Exception)
{
throw;
}
[/CODE]

I know you can't use the first line in a static method, but honestly I cant wrap my head around an alternative.

I just want it so that at active cell in Excel it inserts that array into the range.

HAELP!

Link to comment
https://www.neowin.net/forum/topic/1108879-c-excel-add-in-help/
Share on other sites

5 answers to this question

Recommended Posts

  • 0

The ExcelInsert method could take the Excel.Range object as a parameter. The form has access to the Application object so it can get the ActiveCell() and pass it.

Also ToString() is a method that returns a string representation of the object and never takes a parameter. I'm quite sure that's not how you set the value of cells. See http://msdn.microsoft.com/en-us/library/office/bb978779(v=office.12).aspx#DevGuideExcel2007RangeObject_InsertingValuesintoaRange

By the way there are a few anti-patterns in this method:

- Don't catch System.Exception

- Don't use empty catch clauses that just rethrow the exception - that achieves nothing except resetting the stack trace, making debugging harder

- Don't use "as" to cast if you're expecting the cast to always succeed - use a regular cast instead (i.e. (Excel.Range)Application.ActiveCell())

  • 0

- Don't use "as" to cast if you're expecting the cast to always succeed - use a regular cast instead (i.e. (Excel.Range)Application.ActiveCell())

He doesn't need the cast at all, Application.ActiveCell returns Range.

  • 0
Can you explain the Method a bit more? The form does have access to the application object but anything further I cannot access.
I don't know how to put it more plainly, so here's some code:

From the form:

ThisAddIn.ExcelInsert(inserts.ToString(), Application);[/CODE]

ExcelInsert becomes:

[CODE]
public static void ExcelInsert(string insert, Application application)
{
var range = application.ActiveCell;
// do whatever you want with range
}
[/CODE]

  • 0

I don't know how to put it more plainly, so here's some code:

From the form:

ThisAddIn.ExcelInsert(inserts.ToString(), Application);[/CODE]

ExcelInsert becomes:

[CODE]
public static void ExcelInsert(string insert, Application application)
{
var range = application.ActiveCell;
// do whatever you want with range
}
[/CODE]

Okay so the ExcelInsert works (thanks for clearing that up). But now it says Interface not valid at this point on the form.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • This is sadly what happens when a company tries to become political and focus on agendas outside gaming, the constant push of inclusivity and whatever the current thing was and box ticking, instead of simply focusing on what was a great game to many myself included, massive let down that a once great game company has ended up this way hopefully this will be a lesson to game devs from here on in to leave politics and agendas out of gaming
    • Prices for consumer electronic stink and will continue to stink for quite some time. If you're at all hesitant, just buy now because it's not getting better. (or buy used and save even more cash)
    • Microsoft raises Xbox console prices by up to $150, discontinues 2TB version by Pulasthi Ariyasinghe Back in March, Sony increased PlayStation 5 prices, and now, it's Microsoft's turn. Today, the company announced a major price increase that will affect all of its Xbox consoles, and one storage option is being discontinued entirely. There is some time before the new prices go into effect. Starting on August 1, 2026, any Xbox Series X|S model with 512GB of storage will cost $100 more than now. The price of 1TB models will go up by $150 instead. At the same time, all 2TB models are being discontinued. "The entire consumer electronics industry is struggling with the current components crisis, but the effects are particularly hard on consoles," said the company. "Unlike phones, computers, speakers, and other consumer devices, consoles are typically not sold at a profit, but instead for less than they cost to make." As the hikes hit, Microsoft is beginning to offer more options to make its consoles more accessible to potential customers, including financing, buy now, pay later schemes, and refurbished options: Buy Now, Pay Later: We’ve made it easier for players to use Buy Now, Pay Later options on eligible XBOX hardware purchases through Microsoft Stores, making it possible to break up your payment into predictable short-term, interest-free installments. Interest-Free Financing: Players purchasing eligible XBOX hardware through Amazon can take advantage of 0% APR financing for up to 12 months, giving players more flexibility with lower monthly payments and more budgeting control. Previously Played Consoles: We are working with retail partners on new programs to provide previously played consoles at lower prices. Players who are ready to upgrade or no longer use their console will be able to trade it in with participating retail partners for cash or store credit. Those consoles will then be made available at lower prices for players. Certified Refurbished Consoles: XBOX Certified Refurbished Consoles are available at Microsoft Stores for up to US$100 off MSRP. Microsoft said that the rising cost of storage and memory prices is behind this decision, with costs going up by over 2.5 times since the last time it raised prices of its consoles. The company says these parts are expected to double in price by the fall of 2027.
  • Recent Achievements

    • First Post
      kinowa earned a badge
      First Post
    • Rookie
      krychek57 went up a rank
      Rookie
    • Grand Master
      Jaybonaut went up a rank
      Grand Master
    • One Year In
      Philsl earned a badge
      One Year In
    • Dedicated
      Scoobystu earned a badge
      Dedicated
  • Popular Contributors

    1. 1
      +primortal
      409
    2. 2
      +Edouard
      168
    3. 3
      PsYcHoKiLLa
      132
    4. 4
      Xenon
      73
    5. 5
      Michael Scrip
      73
  • Tell a friend

    Love Neowin? Tell a friend!