Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 需要编码以根据输入用户名的行更改行号,以确保复制正确的数据_Vba_Excel - Fatal编程技术网

Vba 需要编码以根据输入用户名的行更改行号,以确保复制正确的数据

Vba 需要编码以根据输入用户名的行更改行号,以确保复制正确的数据,vba,excel,Vba,Excel,我有一个报告,我正在使用一个精确的列和行从中提取,但是,我需要VBA查找指定用户名(位于列a)的行号,并且只从其他列中的该行提取数据。这是因为当删除/添加用户时,数据在工作表上会上移或下移。这就是我目前拥有的,我不知道从哪里开始 Private Sub CommandButton2_Click() Dim xDate As String Dim ACD As String Dim Untouched As String Dim DailyAct As String Dim SchedAdher

我有一个报告,我正在使用一个精确的列和行从中提取,但是,我需要VBA查找指定用户名(位于列a)的行号,并且只从其他列中的该行提取数据。这是因为当删除/添加用户时,数据在工作表上会上移或下移。这就是我目前拥有的,我不知道从哪里开始

Private Sub CommandButton2_Click()

Dim xDate As String
Dim ACD As String
Dim Untouched As String
Dim DailyAct As String
Dim SchedAdherence As String
Dim Status As String
Dim RowCount As Long
Dim DailyPerformance As Excel.Workbook
Dim TWB As Workbook
Set TWB = ThisWorkbook
Set DailyPerformance = Workbooks.Open("P:\DX\Daily Team Performance\Dignositc Team's Daily Performance Tracker (001).xlsx", ReadOnly:=True, Password:="dailyp123")



ACD = DailyPerformance.Worksheets("Matt's Tab Two").Range("C4").Value
DailyAct = DailyPerformance.Worksheets("Matt's Tab Two").Range("E4").Value
SchedAdherence = DailyPerformance.Worksheets("Matt's Tab Two").Range("F4").Value * 100
Status = DailyPerformance.Worksheets("1359 Report Summary").Range("B5").Value
xDate = DailyPerformance.Worksheets("1359 Report").Range("L2").Value

RowCount = TWB.Worksheets("Data").Cells(Rows.Count, 2).End(xlUp).Row
With TWB.Worksheets("Data").Range("B1")
.Offset(RowCount, 0) = xDate
.Offset(RowCount, 1) = ACD
.Offset(RowCount, 2) = DailyAct
.Offset(RowCount, 3) = SchedAdherence
.Offset(RowCount, 4) = Status
End With
TWB.Save
DailyPerformance.Close

End Sub

这会让你朝着正确的方向开始

Sub FindCell()

    Dim UserNameString As String, UserNameCell As Range, MyRow As Long
    UserNameString = "AbC123"   'Place the value you're looking for

    'This will set the cell to the username value above
    Set UserNameCell = Sheet1.Cells.Find(UserNameString)

    MyRow = UserNameCell.Row

    MsgBox MyRow

End Sub

使用Range.Find方法,然后使用它返回的范围的.Row属性:。您可以录制宏以获得所需的大部分代码。我是VBA新手,如果可能的话,需要一个编码示例。我希望它找到正确的用户名,然后替换我从中复制信息的列的行号。示例:如果(Rbunch)位于A列的第13行,则需要从单元格B13、N13、M13等进行复制。这不是代码编写服务@苦艾酒提供的信息将帮助您找到自己的解决方案。你应该努力使用这些信息,而不是仅仅说我需要代码。有时需要帮助是可以的,但请不要束手无策。我的措辞不是最好的,如果你认为我只是想让你“写”代码,我向你道歉。我不明白如何将range.find方法转换为我的复制行。是否有其他参考可以帮助我正确编写复制行,以使用范围的行数。查找以代替精确的行#。DailyPerformance.Worksheets(“Matt的Tab二”).Range(“E4”).Value(“E4”)到(“E(Range.find row count for username)”)@Blink21889您所要求的非常简单。也许你应该阅读一些初学者教程来开始学习,例如Hello K Davis。我理解这一部分,但我正在努力找出如何在公式中使用MyRow,以便将特定行复制到另一列中。