当前位置: 首页 > 知识库问答 >
问题:

如何查找与当前单元格相邻的单元格值C#+Excel

平学
2023-03-14

我已经编写了一个程序,找到一个包含“customer:”的单元格,并且程序成功地工作。问题是,我想要直接挨着单元格的单元格的值。布局如下所示:

__________   _________
|Customer:| | Steve  |
|_________| |________|
|Customer:| | John   |
|_________| |________|
|Customer:| | Frank  |
|_________| |________|
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");
            }

共有1个答案

燕英奕
2023-03-14

我想偏移功能就是你要找的。在您的代码中,可以添加一行内容:

firstFind.Offset[0, 1]; 

“0”表示以当前行为目标“1”表示要以excel范围右侧第1列为目标

 类似资料:
  • null 如您所料,A3将导致。现在将A2的格式更改为会计,使用小数点后2位。A2现在读,但是基础值仍然是,所以A3仍然是。 VBA 制作一个新模块并添加以下函数: null 和具有相同的基础值,但和没有,尽管它们都是使用和的方法计算的。 ()中的表达式正在访问和的实际基础值。如何在VBA中访问这些值?

  • 我有一个带有sheet1 excel文件,该文件的第2行和第10列有一个我需要读取的值。这是我的代码。 获取了cell对象Excel.Range后,我不知道如何读取该单元格的内容。我试着把它转换成数组并在它上面循环,我试着转换成字符串数组等等,我确信这是非常简单的。有没有直接的方法只得到一个字符串的单元格值?

  • 我正在使用这种数据帧: 如果用户输入,,我需要显示和或\n 如果用户输入,,我需要显示和

  • 我想写一个excel公式,它可以让我从表2中找到表1的一列值,然后返回表2中的单元格引用, 谢谢,

  • 我有一种类型的二维对象数组。我想根据每个表单元格的数据、行和列索引对其进行格式化。因此,我必须确切地知道我当前正在格式化TableView的哪个单元格。在SetCellFactory中的updateItem中找不到提供当前单元格索引的方法。下面是创建TableView的全部代码:

  • 当我在excel、LibreOffice Calc或Google Sheets中打开我的CSV时,每个单元格的字符限制被超过,一个单元格中的数据溢出到相邻的单元格中。如何防止这种情况发生,使文件保持其原始结构?或者,是否有其他方法可以编辑此文件以避免此问题?或者,如果没有,有没有办法切断任何超出单元格字符限制的内容,以便我可以正确使用电子表格?