我目前正在为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,但没有想办法解决这个问题。