简体   繁体   中英

How to find the value of a cell adjacent to the current cell C# + Excel

I have written a program that finds a cell containing "Customer:" and the program works successfully. The problem is, I want the value of the cell directly next to the cell. The layout looks something like this:

__________   _________
|Customer:| | Steve  |
|_________| |________|
|Customer:| | John   |
|_________| |________|
|Customer:| | Frank  |
|_________| |________|

So in this case I would want the values "Steve", "John", and "Frank". How can I do this?

Thanks, Luke

My Code:

public void gatherInfo()
    {
        string temp = "";

        Excel.Range currentFind = null;
        Excel.Range firstFind = null;

foreach (Excel.Worksheet sheet in excelWorkbook.Application.Worksheets)
        {
            try
            {
                // access cell within sheet
                Excel.Range excelCell =
                      (Excel.Range)sheet.get_Range("A1", Type.Missing);                   

                currentFind = excelCell.Find("Customer:", 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))
                    {
                        //String value of cell
                        temp = currentFind.Value2.ToString();

                        break;
                    }

                    currentFind = excelCell.FindNext(currentFind);

                }

                //Find adjacent cell value here?

                holdInformation.Add(temp);

            }

            catch
            {
                Console.WriteLine("Couldn't get customer name");
            }

i think the offset function is what you are looking for. On your code, you could add a line that goes:

firstFind.Offset[0, 1]; 

"0" to signify that you target the current row "1" to signify that you want to target the 1st column on the right from the excel range

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM