none
Excel 搜尋特定值後 找出特定值欄位 行與列 問題 RRS feed

  • 問題

  • Excel  最近要寫入資料,但因為所選擇的值不同需要搜尋後,在某一行某一列開始寫入資料。

    以下事我搜尋的程式碼,搜尋目標值2,找到後變更為紅色 。

    想請教有經驗的大大,像我這樣搜尋到之後如何把2的欄位 那行跟列找出來 成為我寫入新資料的變數??

    先謝謝各位大大給的參考或方向 。

                Excel.Application App = new Excel.Application();
                Excel.Range currentFind = null;
                Excel.Range firstFind = null;
                Excel.Worksheet sheet = null;
                Excel.Workbook book = null;
                Microsoft.Office.Tools.Excel.NamedRange getHeadersRange;
    
                string path = "D:\\test1.xls";
    
                //開啟excel
                book = App.Workbooks.Open(path);
                sheet = book.Worksheets["LT"];
     
                Excel.Range Fruits =  sheet.get_Range("A1", "A1000");
                // You should specify all these parameters every time you call this method,
                // since they can be overridden in the user interface. 
                currentFind = Fruits.Find("2", Type.Missing,Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart,Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, false,Type.Missing, Type.Missing);
    
                while (currentFind != null)
                {
                    // Keep track of the first range you find. 
                    if (firstFind == null)
                    {
                        firstFind = currentFind;
                    }
    
                    // If you didn't move to a new range, you are done.
                    else if (currentFind.get_Address(Excel.XlReferenceStyle.xlA1)== firstFind.get_Address(Excel.XlReferenceStyle.xlA1))
                    {
                       //搜尋到 目標值2 的第一行 離開程式 
                        break;
                    }
                    
                    //找到目標值 更改目標值顏色 為紅色
                    currentFind.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
                    currentFind.Font.Bold = true;

    2017年7月21日 上午 03:58

解答

  • 不能把搜尋到的儲存格的內容存放到一個變數嗎? 還是有特別的考量?
    • 已標示為解答 z4503 2017年7月21日 上午 05:37
    2017年7月21日 上午 04:06

所有回覆

  • 不能把搜尋到的儲存格的內容存放到一個變數嗎? 還是有特別的考量?
    • 已標示為解答 z4503 2017年7月21日 上午 05:37
    2017年7月21日 上午 04:06
  • 不能把搜尋到的儲存格的內容存放到一個變數嗎? 還是有特別的考量?

    可以。 沒有特別考量。

    只是我很不熟這個用法,程式碼都是網路找的,所以對用法不是很了解透徹, This 大大如果可以提供你的做法或想法讓我參考一下,

    就非常感謝。


    2017年7月21日 上午 05:30
  •  多謝This 大大的提醒  當初我還不知道    currentFind.get_Address(Excel.XlReferenceStyle.xlA1) 到底昰什麼屬性。

     直接指定一個屬性才知道 他昰String ,裡面就可以看到他昰哪一行的資料了。

    string  execl_count   = currentFind.get_Address(Excel.XlReferenceStyle.xlA1);

    execl_count = "$A$50"   裡面的50就是我要的變數了。 


    2017年7月21日 上午 05:41