只有赋值、调用、增量、递减、await和new对象表达式可以作为语句使用

本文关键字:表达式 语句 对象 new 调用 赋值 增量 递减 await | 更新日期: 2023-09-27 18:10:26

我有一个问题,我肯定是愚蠢的,我错过了显而易见的。当我将"wksht.Cells[1,1]. select;"放入代码以选择最左上角的单元格时,我得到了以下错误。

Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement.

下面是它被调用的方法:

        public void ValueSaves(Excel.Workbook wb, Excel.Application excelApp)
    {
        Excel.Worksheet wksht;
        excelApp.ScreenUpdating = false;

        for (int i = 0; i < lstSaveSheet.Items.Count; i++)
        {
            string range = lstSaveRange.Items[i].ToString();
            wksht = wb.Sheets[lstSaveSheet.Items[i].ToString()];
            Boolean sheetProtected = false;
            if (wksht.ProtectContents)
            { sheetProtected = true; }
            wksht.Unprotect();
            if (range == "whole sheet")
            {
                //select & copy whole sheet
                wksht.get_Range("a1").EntireRow.EntireColumn.Copy(Type.Missing);
                //paste whole sheet as a value
                wksht.get_Range("a1").EntireRow.EntireColumn.PasteSpecial(Excel.XlPasteType.xlPasteValues, Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false);
            }
            else
            {
                string[] CellRefs = lstSaveRange.Items[i].ToString().Split(':');
                wksht.get_Range(CellRefs.First(), CellRefs.Last()).Copy(Type.Missing);
                //paste range as a value
                wksht.get_Range(CellRefs.First(), CellRefs.Last()).PasteSpecial(Excel.XlPasteType.xlPasteValues, Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false);
            }
            wksht.Cells[1, 1].Select;  <== Error here
            if (sheetProtected)
            { wksht.Protect(); }
            Clipboard.Clear();
            excelApp.ScreenUpdating = true;
        }
    }

只有赋值、调用、增量、递减、await和new对象表达式可以作为语句使用

Select()是一个用于选择单元格或单元格范围的方法,并且您试图在没有函数括号的情况下使用它。

试试这个:

 wksht.Cells[1, 1].Select();