VB.net在excel范围内找到最大值

时间:2016-01-08 21:33:00

标签: vb.net excel

VB编码新手,请耐心等待。

我正在研究的Windows表单项目(出于个人兴趣和挑战)是自动化工作流程,进入办公室的工作将需要注意几个附加的项目。使用定制软件(无法避免)将这些项目预订到SQL DB中,然后输入电子表格。我试图在某种程度上自动化这个过程。我已成功(使用stackoverflow的帮助)创建从表单到SQL Server的连接,运行查询,将结果存储在数据集中并将第一组数据传输到我的Excel。

但是,每天我都需要在表格中添加新的项目/条目。数据库中的条目具有唯一的连续ID号,因此我的想法是对条目运行选择查询>已写入excel的最高ID。

我已经确定了包含数据的最后一行(lrow),因为无论如何我都需要...(xlsht是我的活动工作表)

    Dim lrow as long = 0
    With xlSht
        lrow = .range("C" & .rows.count).end(Excel.XlDirection.xlUp).row
    End With

我可以使用它来识别C6:C(lrow)或(C:C)范围内的最高ID号,如建议的那样。电子表格数据不是ID顺序,因此只选择该列中最后一个填充的单元格将不起作用。

使用Application.max(“C:C”)错误,因为“'max'不是system.windows.forms.application的成员”,而我缺乏经验意味着我还不知道如何解决这个问题!

我一直在寻找建议,但只能在VBA中找到代码提示,而我的知识缺乏,我无法轻易翻译或理解它。有人可以指出我正确的方向吗?

非常感谢。

编辑:作为一种解决方法,直到我知道更多,我在电子表格中创建了一个隐藏列,其中一个单元格(T6)包含函数'max(C:C)',然后我读取该值进入我的VB代码

    Dim maxvalue As Integer
    maxvalue = xlSht.range("T6").Value

...但我最终会删除它。

由于

1 个答案:

答案 0 :(得分:0)

您可以使用WorksheetFunction获取最大值。

    Dim xlapp As Microsoft.Office.Interop.Excel.Application
    xlapp = xlSht.Parent.Application
    Debug.Print xlapp.WorksheetFunction.Max(xlSht.Range("C:C"))

如果您已有应用程序对象,则只需要最后一行。我通常使用import语句:

Imports Microsoft.Office.Interop.Excel

当然,您还需要Excel interop的项目引用。