用于将信息添加到正确位置的Vba代码

时间:2016-05-11 08:28:48

标签: excel vba excel-vba

我正在尝试为我的代码找到解决方案,首先向用户询问玩家的名字,然后宏在我的数据库中搜索名称。如果名称在那里,那么宏会询问玩家的目标数量。然后写入inputBox的目标数量将添加到玩家的信息中。

我的问题是宏没有为已搜索的玩家添加目标数。它会增加目标数量并替换球员名称

这是我现在的代码:

Sub maalit()

   Dim ws As Worksheet
   Dim lRow As Long
   Dim strSearch As String
    Set ws = Worksheets("Data")


Dim etsi As String
etsi = InputBox("Etsi Jäsen", "maalien lisääminen")   'asks the players name


If Trim(etsi) <> "" Then
        With Sheets("Data").Range("A:A")
            Set Rng = .Find(What:=etsi, _
                            After:=.Cells(.Cells.Count), _
                            LookIn:=xlValues, _
                            LookAt:=xlWhole, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlNext, _
                            MatchCase:=False)
            If Not Rng Is Nothing Then

   tulos = InputBox("Anna pelaajan maalienmäärä", "maalien lisääminen")
    Rng.Value = tulos        'asks the number of goals but this is the problem place the bacause it adds them to the wrong column i want them to be in column G


        Else
                MsgBox "Jäsentä ei löytynyt"
            End If
        End With
    End If
End Sub

2 个答案:

答案 0 :(得分:0)

您应该使用偏移,所以请替换:

 Rng.Value = tulos 

人:

Rng.Offset(, 6).Value = tulos

答案 1 :(得分:0)

您可以使用OFFSET,例如:
Rng.Value = tulos更改为Rng.Offset(0, 1).Value = tulos,将输入1列向右移动。只需将1更改为需要跳转的列,以便最终在G列中结束。

或者,您可以构建一个新范围:
Rng.Value = tulos更改为Range("G" & rng.Row).Value = tulos