在数据表中查找行并使用VBA excel替换它

时间:2015-01-08 18:11:57

标签: excel vba excel-vba replace find

对于visual basic而言,我是一个新手,我正在寻求帮助。

基本上我已经编写了带有数据输入表的代码,并将其转储到下一个可用空行中的数据表中。

我现在正在尝试创建一个单独的页面,用户可以在其中修改详细信息 - 将详细信息提供给此页面我只是简单地使用了VLookups但现在我希望有一个宏来查找特定的值一系列行,然后用新工作表中修改过的行替换该行。

任何有关这方面的帮助都会非常感激,因为我正在大肆努力。

新信息:

我把这些代码放在一起试图证明我想要实现的目标 - 我知道这段代码不是很好而且无法实现它但是希望它能解释我正在尝试做什么。

我正在尝试使用位于Sheets(“LCH”)。“范围(”E16“)中的”ID“,在表格中找到它(”数据“)它将位于第一个列然后在找到值时,我想将SourceRange中的所有信息粘贴到它的右侧。

请参阅以下代码:

Sub Button1_Click()

Dim rng1 As Range
Dim ID As Range
Dim DestSheet As Worksheet
Dim SourceRange As Range
Dim DestRange As Range
Set DestSheet = Sheets("Data")
Set ID = Sheets("LCH").Range("E16")
Set SourceRange = Sheets("LCH").range(E17:E90)
Set DestRange = Sheets("Data").Range("A1:ZZZ500")
DestSheet.Activate
Set rng1 = ActiveSheet.Find(ID, Cells(1, ActiveCell.Column), xlFormulas, xlWhole, , xlNext)
SourceRange.Copy
DestRange.PasteSpecial _
Paste:=xlPasteValuesAndNumberFormats, _
operation:=xlPasteSpecialOperationNone, _
skipblanks:=False, _
Transpose:=True
Application.CutCopyMode = False
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
If Not rng1 Is Nothing Then
Application.Goto rng1
Else
MsgBox "10 not found"
End If
End Sub   

1 个答案:

答案 0 :(得分:0)

Sub Tester()

    Dim f As Range, IDCell As Range

    Set IDCell = Sheets("LCH").Range("E16")

    Set f = Sheets("Data").Columns(1).Find(IDCell.Value, _
                          LookIn:=xlValues, lookat:=xlWhole)

    If Not f Is Nothing Then

        Sheets("LCH").Range("E17:E90").Copy
        f.Offset(0, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, _
                                    Transpose:=True
        Application.CutCopyMode = False

    Else
        MsgBox "ID '" & IDCell.Value & "' not found on data sheet", vbExclamation
    End If


End Sub