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
...但我最终会删除它。
由于
答案 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的项目引用。