在数据表中查找行并使用 VBA excel 替换它
Finding row in datasheet and replacing it using VBA excel
在 Visual Basic 方面,我完全是个新手,正在寻求帮助。
基本上我已经编写了获取数据条目 sheet 并将其转储到下一个可用空闲行中的数据 sheet 的代码。
我现在正在尝试创建一个单独的页面,用户可以在其中修改详细信息 - 为了将详细信息提供给此页面,我只是简单地使用了 VLookups,但现在我希望有一个宏来查找特定的一系列行中的值,然后用新 sheet.
中修改后的行替换该行
在这方面的任何帮助将不胜感激,因为我正在苦苦挣扎。
新信息:
我将这段代码放在一起,试图展示我想要实现的目标 - 我知道这段代码不是很好,也不会实现它,但希望它能以某种方式解释我正在尝试的目标去做。
我正在尝试获取位于 Sheets("LCH").range("E16") 中的 "ID",在 Sheets("Data") 中查找它它将位于第一列,然后在找到值后我想将 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
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
在 Visual Basic 方面,我完全是个新手,正在寻求帮助。
基本上我已经编写了获取数据条目 sheet 并将其转储到下一个可用空闲行中的数据 sheet 的代码。
我现在正在尝试创建一个单独的页面,用户可以在其中修改详细信息 - 为了将详细信息提供给此页面,我只是简单地使用了 VLookups,但现在我希望有一个宏来查找特定的一系列行中的值,然后用新 sheet.
中修改后的行替换该行在这方面的任何帮助将不胜感激,因为我正在苦苦挣扎。
新信息:
我将这段代码放在一起,试图展示我想要实现的目标 - 我知道这段代码不是很好,也不会实现它,但希望它能以某种方式解释我正在尝试的目标去做。
我正在尝试获取位于 Sheets("LCH").range("E16") 中的 "ID",在 Sheets("Data") 中查找它它将位于第一列,然后在找到值后我想将 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
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