Доступ к выбранному адресу диапазона и значениям ячеек в Excel - PullRequest
0 голосов
/ 25 декабря 2011

Я пытаюсь написать надстройку приложения для Excel 2010 с использованием .NET 4 и VS 2010. Трудно получить доступ к диапазону ячеек, выбранных пользователем.Пользователь выберет серию из n последовательных ячеек и затем нажмет кнопку на панели ленты.Затем после нажатия этой кнопки мне нужно получить доступ как к адресам ячеек для диапазона, так и к значениям ячеек.Ниже мой код.get_Range - самый близкий метод, который мне удалось найти, что мне нужно.Однако этот метод требует первого и последнего адреса ячейки.Есть ли подобный метод, который будет принимать выбранный пользователем диапазон ввода в качестве параметра?Кроме того, после доступа к выбранному диапазону мне нужно взять значения, содержащиеся в этом диапазоне, и записать их в базу данных.Я предполагаю использовать что-то вроде range.SelectedValues, которые я бы бросил в таблицу данных.Как правильно получить доступ к набору выбранных значений?

Заранее благодарим за любую помощь.Я потерялся в документации PIA и изо всех сил пытаюсь выполнить то, что должно быть простой задачей.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Tools.Ribbon;
using Microsoft.Office.Tools.Excel;
using Microsoft.Office.Interop.Excel;

namespace ExcelAddIn2
{
    public partial class Ribbon1
    {

        private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
        {

        }

        private void GetRageValues()
        {

            Range range = Globals.ThisAddIn.Application.get_Range("A1", "A3");

            //to be replaced with database insert
            System.Windows.Forms.MessageBox.Show("You Selected" + range.Address);
        }

        private void button1_Click_1(object sender, RibbonControlEventArgs e)
        {
            GetRageValues();

        }

    }
}

Ответы [ 2 ]

0 голосов
/ 27 октября 2016

Для проекта надстройки .net для Excel:

        Microsoft.Office.Interop.Excel.Range SelectedRange = Globals.ThisAddIn.Application.Selection;
0 голосов
/ 31 декабря 2011

В VBA требуемый объект - Selection. Тип этого объекта будет зависеть от того, что выбрано; если это диапазон, то он будет иметь тип Range. Я не уверен, что эквивалент в Interop, но он должен быть похожим.

(перемещенный комментарий к ответу)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...