c#中提示 当前上下文中不存在文件名“**” 的问题

傲慢的哈娃儿 2012-11-20 05:41:18
在vs2005 c#环境下private void button1_Click(object sender, EventArgs e)中的一段程序如下

for (int j = 0; j < 500000; j++)
{
if (j < 60000 && data_deliver.ex_item == 1)
{
Excel.Worksheet objsheet1 = (Excel.Worksheet)objbook.Worksheets.get_Item(1);
data_deliver.ex_item = 2;
x = 1;
y = 1;
}

if (j >= 60000 && j < 120000 && data_deliver.ex_item == 2)
{
Excel.Worksheet objsheet2 = (Excel.Worksheet)objbook.Worksheets.get_Item(2);
data_deliver.ex_item = 3;
x = 1;
y = 1;
}

if (j >= 120000 && j < 180000 && data_deliver.ex_item == 3)
{
Excel.Worksheet objsheet3 = (Excel.Worksheet)objbook.Worksheets.get_Item(3);
data_deliver.ex_item = 4;
x = 1;
y = 1;
}
if (data_deliver.ex_item == 2)
{
Excel.Range r = (Excel.Range)objsheet1.Cells[x, y];
}

else if (data_deliver.ex_item == 3)
{
Excel.Range r = (Excel.Range)objsheet2.Cells[x, y];
}

else if (data_deliver.ex_item == 4)
{
Excel.Range r = (Excel.Range)objsheet3.Cells[x, y];
}

r.Value2 = data_deliver.Datacache[j];



}

编译时提示:
当前上下文中不存在文件名“objsheet1”
当前上下文中不存在文件名“objsheet2”
当前上下文中不存在文件名“objsheet3”
当前上下文中不存在文件名“r”


如果按c语言的话,这段程序应该没问题吧!但为啥在C#中就出现错误了啊??好像编译时计算机忽略了if条件下的语句! 我刚开始学C#,也是第一次用vs2005,望朋友们指教一下,谢谢了
...全文
582 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲慢的哈娃儿 2012-11-20
  • 打赏
  • 举报
回复
谢谢了哈
bdmh 2012-11-20
  • 打赏
  • 举报
回复
Excel.Worksheet objsheet1放到if语句外面,否则只能在第一个if的代码块内访问,其他地方访问不了
kxloveh 2012-11-20
  • 打赏
  • 举报
回复
objsheet1 这个问题是变量的作用域的问题,你的objsheet1 放在if语句里面,那么objsheet1 只在那个if语句内有效,出了if语句的{}就失效了

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧