无法使用InputBox切换工作簿以选择范围

时间:2018-06-13 07:15:05

标签: c# excel excel-2010 vsto

我目前正在为Excel 2010(版本14.0.7208.5000 32位)编写excel插件。根据Malick的说法,Excel 2016中不会出现以下问题。

在程序的某一点,我需要用户选择一个范围。因此,我使用Excel._Application.Inputbox,它是通过按下表单中的按钮启动的。

我可以在不同的工作表上选择范围,但只有在点击其中时我才能更改工作簿。因此,如果我开始添加的主要工作簿是全屏的,我无法使用其中的数据到达第二个工作簿。

public void main()
{
    Parameters Paras = new Parameters();
    Paras.ShowDialog();
    //Some calculations with these parameters follow here
}

单击该表单中的按钮可启动高级设置/数据选择的表单:

private void btn_Advanced_Click(object sender, EventArgs e)
{
    ParametersAdvanced PA = new ParametersAdvanced();
    PA.Show();
}

其中一个设置是自定义时间戳:

private void btn_Time_Click(object sender, EventArgs e)
{
    Excel.Range TimeRange = GetRange();
    rTB_Time.Text = TimeRange.Address;    //display range in a RichTextBox
}

现在当后面的InputBox打开时,我无法切换到另一个工作簿。

public Excel.Range GetRange()
{
    Excel.Application xlApp = Globals.ThisAddIn.Application.Application;

    Selection:
    Excel.Range rng = xlApp.InputBox("Select Range", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 8);

    if (rng.Columns.Count == 1)
        return rng;
    else
        MessageBox.Show("Select only one column with according values.");
        goto Selection;
}

P.S。:我也不喜欢goto,但没有想办法解决这个问题。

0 个答案:

没有答案