Excel VBA-生成下一个空行号并复制到电子表格

Excel VBA-生成下一个空行号并复制到电子表格,excel,vba,Excel,Vba,VBA问题 我是一个VBA新手,我想看看我是否能让我的代码为我做更多的事情。 目前,该代码在我的sharedrive上打开一个电子表格,检查下一个空行,并向我提供行号。例如,我有39行数据,第40行是空的,它给了我数字40 它目前在msgbox中为我提供此号码。我想让它做的是把这个数字输入到我打开的工作表上的一个单元格中 这个数字基本上是一个ID,它还显示了已经提交的“投诉”数量 有什么想法吗 这是我目前的代码: Sub LastRowWithData() Dim lastRow As Lon

VBA问题

我是一个VBA新手,我想看看我是否能让我的代码为我做更多的事情。 目前,该代码在我的sharedrive上打开一个电子表格,检查下一个空行,并向我提供行号。例如,我有39行数据,第40行是空的,它给了我数字40

它目前在msgbox中为我提供此号码。我想让它做的是把这个数字输入到我打开的工作表上的一个单元格中

这个数字基本上是一个ID,它还显示了已经提交的“投诉”数量

有什么想法吗

这是我目前的代码:

Sub LastRowWithData()

Dim lastRow As Long
Dim ConcernMemosMaster As Workbook

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Set ConcernMemosMaster = Workbooks.Open("N:\myfilepath")
lastRow = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row + 1

ConcernMemosMaster.Close

Application.DisplayAlerts = True

MsgBox lastRow

End Sub

下面的代码将把行数+1粘贴到活动图纸单元格A1中的lastRow变量中

如果您希望它位于不同的单元格中,请修改该行

currentSheet.RangeA1=最后一行

并用不同的单元格引用替换A1

您的宏:

Sub LastRowWithData()

    Dim currentSheet As Worksheet
    Set currentSheet = ActiveSheet

    Dim lastRow As Long
    Dim ConcernMemosMaster As Workbook

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    Set ConcernMemosMaster = Workbooks.Open("N:\myfilepath")
    lastRow = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row + 1

    ConcernMemosMaster.Close

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

    currentSheet.Range("A1") = lastRow

End Sub

只需将最后一行指定给要放入的单元格即可。录制宏或通过谷歌搜索应该可以很快找到正确的语法。行号不是一个非常可靠的Id-如果删除一行或多行,那么最终会出现重复的值。最好将Id存储在单元格或工作簿名称中,并在每次读取该值时递增。这还显示了已提交的“投诉”数量。。。。一个简单的Excel公式=COUNTAA:A也会给出A列中的条目数。如果A列中有标题,那么=COUNTAA:A-1也可以从VBA调用相同的函数。嗨,蒂姆,我之所以要将其复制到单元格中,是因为我确实将其存储在单元格中。我还将其存储在单独的工作簿名称中,并根据编号、数据、时间和用户为其分配第二个ID。我只是想从另一个工作簿中获取这个值并将其复制到一个单元格中。Tim提到的是重复值的问题。就像在你的例子中,它应该给你40行,因为有39行。如果稍后删除一行并再次给您40,该怎么办?