Excel中的range.find方法

时间:2010-04-13 10:42:13

标签: c#

我有一个带标题的Excel文件

Sep-08  Oct-08  Nov-08  Dec-08  Jan-09  Feb-09  Mar-09  Apr-09

我想传递一个字符串,例如Dec-08,并获取一个范围内存在的单元格的地址。

我使用range.find方法,但无法在Excel中找到日期。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

//全局声明这两个变量,以便您可以从两者中访问它们       // Button1和Button2。       Excel.Application objApp;       Excel._Workbook objBook;

  private void button1_Click(object sender, System.EventArgs e)
  {
     Excel.Workbooks objBooks;
     Excel.Sheets objSheets;
     Excel._Worksheet objSheet;
     Excel.Range range;

     try
     {
        // Instantiate Excel and start a new workbook.
        objApp = new Excel.Application();
        objBooks = objApp.Workbooks;
        objBook = objBooks.Add( Missing.Value );
        objSheets = objBook.Worksheets;
        objSheet = (Excel._Worksheet)objSheets.get_Item(1);

        //Get the range where the starting cell has the address
        //m_sStartingCell and its dimensions are m_iNumRows x m_iNumCols.
        range = objSheet.get_Range("A1", Missing.Value);
        range = range.get_Resize(5, 5);

        if (this.FillWithStrings.Checked == false)
        {
           //Create an array.
           double[,] saRet = new double[5, 5];

           //Fill the array.
           for (long iRow = 0; iRow < 5; iRow++)
           {
              for (long iCol = 0; iCol < 5; iCol++)
              {
                 //Put a counter in the cell.
                 saRet[iRow, iCol] = iRow * iCol;
              }
           }

           //Set the range value to the array.
           range.set_Value(Missing.Value, saRet );
        }

        else
        {
           //Create an array.
           string[,] saRet = new string[5, 5];

           //Fill the array.
           for (long iRow = 0; iRow < 5; iRow++)
           {
              for (long iCol = 0; iCol < 5; iCol++)
              {
                 //Put the row and column address in the cell.
                 saRet[iRow, iCol] = iRow.ToString() + "|" + iCol.ToString();
              }
           }

           //Set the range value to the array.
           range.set_Value(Missing.Value, saRet );
        }

        //Return control of Excel to the user.
        objApp.Visible = true;
        objApp.UserControl = true;
     }
     catch( Exception theException ) 
     {
        String errorMessage;
        errorMessage = "Error: ";
        errorMessage = String.Concat( errorMessage, theException.Message );
        errorMessage = String.Concat( errorMessage, " Line: " );
        errorMessage = String.Concat( errorMessage, theException.Source );

        MessageBox.Show( errorMessage, "Error" );
     }
  }