我对C#编码相对较新,我的大部分Excel自动化都是用宏完成的。我正在尝试将我们使用的大部分自动化功能移动到VSTO插件中,以便每个人都可以轻松使用。我有下面的代码,基本上看C2,如果它匹配一个预定义的变量,写入一个特定的变量到E2,然后向下移动E列(C3为E3,等等)。下面的代码工作得很好,我只是好奇,如果有一个更简单的方法来写这个?我可以为每个预定义的变量创建foreach语句,但我想有人可能知道一种更简单的方法,可以在一个if语句下合并所有不同的变量。
string morphine15ml = "6510005510209015";
string lorazepam30ml = "57100060001320";
int rowNum = 1;
foreach (Range packageSize in xlWS.Range["C2:C" + xlWSlastRow].Cells)
{
rowNum++;
if (packageSize.Value == morphine15ml)
{
foreach (Excel.Range columnE in xlWS.Range["E" + rowNum].Cells)
{
columnE.Value = "15";
}
}
else if (packageSize.Value == lorazepam30ml)
{
foreach (Excel.Range columnE in xlWS.Range["E" + rowNum].Cells)
{
columnE.Value = "30";
}
}
else
{
foreach (Excel.Range columnE in xlWS.Range["E" + rowNum].Cells)
{
columnE.Value = "1";
}
}
1条答案
按热度按时间egdjgwm81#
您可以使用
switch
来简化此代码-请注意,除了分配给columnE.Value
的值之外,循环都是相同的,因此您可以预先计算并用途:如果使用的语言版本不支持switch expressions,则可以将其重写为switch语句: