获取行记录数

Get number of row records

我想使用 word 作为前端用户表单附加数据,并在单击提交按钮时将数据导出到特定的 csv 文件。

虽然首先我需要知道应该在哪一行追加数据。这是以下代码,我收到 nrow = rng1.UsedRange.Rows.Count

的错误消息
'Reference - Microsoft Excel 12.0 Object library 12

'Word
Global objDoc As word.Document
Global docName As String
Global docPath As String
Global docFullName As String

'Workbook
Global objWb As Excel.Workbook
Global objWs As Excel.Worksheet
Global rng1 As Range
Global nrow As Integer
'Global objWord As word.Application

Public Sub Initial_Global()
    'Word
    Set objDoc = ActiveDocument
    docName = objDoc.Name
    docPath = objDoc.Path
    docFullName = objDoc.FullName

    'Excel
    Set objWb = Workbooks.Open(FileName:="C:\Users02911\Desktop\Database1.csv")
    Set objWs = objWb.Worksheets("Database1")
    Set rng1 = objWs.Range("A1")
    nrow = rng1.UsedRange.Rows.Count
    MsgBox nrow
End Sub

nrow = rng1.UsedRange.Rows.Count

这意味着:

Worksheets("Database1").Range("A1").UsedRange.Rows.Count 'wrong

当然会return错误,因为你问的是范围"A1"

的使用范围

一定是这样的:

Worksheets("Database1").UsedRange.Rows.Count

所以在您的代码中,如果您只需要计算列的使用范围内的行,"A" 必须是下一个:

nrow = objWs.UsedRange.Columns(1).Rows.Count

但要小心这种获取最后一行的方法sheet,当使用的范围不是从第一行开始时,问题就会出现,例如如果第一行为空,那么您收到的计数将少于预期。在这种情况下使用此方法:

nrow = objWs.Cells(Rows.Count, 1).End(xlUp).Row

也可能是问题所在,例如由于某种原因,列 "A" 中使用的单元格数少于列 "B" 或 "D " 等中使用的单元格数,但您需要获取最后一个未使用的行,在这种情况下你需要这个方法:

Dim ocell As Range
For Each ocell In objWs.UsedRange
    nrow = ocell.Row
Next
MsgBox nrow