我有一个数据输入页面,它使用VBA代码输入主机。命令按钮。我需要1.要么将新信息提供到主列表的顶部,而没有额外的行已经到位,或者2.需要信息按区域过滤到单独的选项卡,最近列出的位于顶部。我遇到的问题是如何使每个区域的选项卡从主工作表自动更新。所有这些都在一本工作簿中。
VBA代码
Private Sub CommandButton1_Click()
Dim ProjectNumber As String
Dim Region As String
Dim Customer As String
Dim PlantName As String
Dim State As String
Dim PlantNumber As String
Dim Contact As String
Dim PhoneNumber As String
Dim Scope As String
Dim Value As String
Dim Year As String
Dim MW As String
Dim MFG As String
Worksheets("Entry").Select
ProjectNumber = Range("ProjectNumber")
Region = Range("Region")
Customer = Range("Customer")
PlantName = Range("PlantName")
State = Range("State")
PlantNumber = Range("PlantNumber")
Contact = Range("Contact")
PhoneNumber = Range("PhoneNumber")
Scope = Range("Scope")
Value = Range("Value")
Year = Range("Year")
MW = Range("MW")
MFG = Range("MFG")
Worksheets("Experience").Select
Worksheets("Experience").Range("A441").Select
If Worksheets("Experience").Range("A441").Offset(1, 0) <> "" Then
Worksheets("Experience").Range("A441").End(xlDown).Select
End If
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = ProjectNumber
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Region
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Customer
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = PlantName
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = State
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = PlantNumber
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Contact
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = PhoneNumber
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Scope
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Year
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = MW
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = MFG
Worksheets("Entry").Select
Worksheets("Entry").Range("C6").Select
End Sub
答案 0 :(得分:0)
以下内容在第441行的正下方插入一个新的空白行,并将13个字符串值填入新行的列A:M。
Private Sub CommandButton1_Click()
Dim vSTRs As Variant
With Worksheets("Entry")
vSTRs = Array(.Range("ProjectNumber").Value2, .Range("Region").Value2, _
.Range("Customer").Value2, .Range("PlantName").Value2, _
.Range("State").Value2, .Range("PlantNumber").Value2, _
.Range("Contact").Value2, .Range("PhoneNumber").Value2, _
.Range("Scope").Value2, .Range("Value").Value2, _
.Range("Year").Value2, .Range("MW").Value2, .Range("MFG").Value2)
End With
With Worksheets("Experience")
.Cells(442, "A").EntireRow.Insert
.Cells(442, "A").Resize(1, UBound(vSTRs) + 1) = vSTRs
End With
End Sub
这应该是您的第一个选择。
有关远离依赖选择和激活以实现目标的更多方法,请参阅How to avoid using Select in Excel VBA macros。