【发布时间】:2015-03-24 04:05:16
【问题描述】:
用户在输入框中输入用户名(“输入用户名”),这些用户名出现在从第 4 行开始的第一列中(在代码中指定为单元格 (4+k-1,1))。他输入的用户名数量对应于他指出在特定日期活跃的用户数量,在第一个输入框中指定(“在这个日期有多少用户活跃?”)。
现在,我希望下一列 (cells(4+k-1,2)) 执行 vlookup 或类似函数,该函数在第一列(同一行)中获取用户名,并在不同的工作表(相同的工作簿!)。问题是,无论我尝试什么,我都找不到使这项工作有效的代码。我最简单的尝试在代码中呈现如下,并返回消息“运行时错误1004:应用程序定义或对象定义错误”。
Sub Makro4()
Dim dates As Date
dates = InputBox("Enter the date of activity in the format dd/mm/yyyy:.") ' User chooses date
Dim n As Integer
Dim k As Integer
n = InputBox("Number of users active on this date:.")
For k = 1 To n + 1 'Inserts rows accoring to number of users active on specified date
Rows(4).Insert Shift:=xlDown, _
CopyOrigin:=xlFormatFromLeftOrAbove
Next
For k = 1 To n
Cells(4 + k - 1, 1) = InputBox("Enter username")
Cells(4 + k - 1, 2) = Application.WorksheetFunction.VLookup(ActiveWorkbook.Sheets("Users by date").Range(4 + k - 1, 1), ActiveWorkbook.Sheets("Userlist").Range("B:j"), 9, False)
Next
Range(Cells(4, 3), Cells(4 + n - 1, 3)) = dates ' blank row between each date
End Sub
【问题讨论】:
-
那么问题出在哪里?
-
我尝试了一百种不同的方法,但是如果我运行我粘贴在这里的代码,那么在“单元格 (4+k-1,2) =....”我收到错误消息“运行时错误 1004:应用程序定义或对象定义错误”。我粘贴了这个特定的代码,因为它很容易理解,你可以看到我的问题出现在哪里,这与我其他一些失败的尝试不同(这是我写过的第一个宏......)
标签: excel vba loops find vlookup