我对VBA很新,我遇到了这个棘手的问题。 我正在使用一张表格,我输入单元格并按下按钮以创建新行或对概览表中的该行进行更改。
最后一个,我似乎无法工作。 我希望宏检查概述表中是否存在ID。
实施例
我有一张ID为5000且名字为#34; Luke" 还有一个记录wtith ID 5001和名称" Cage"
我将ID为5000的记录更改为" Xander"在我的表格中
我按下按钮"更改记录"并且宏搜索ID为5000的记录并将名称更改为" Xander"
希望你们能帮助或指出我正确的方向。
我找到了一种方法,首先删除然后再添加它。
Dim lRow As Long
Dim iCntr As Long
Dim Ticketnumber As Long
Sheets("Form").Select
Ticketnumber = Range("B1")
Sheets("Tickets").Select
lRow = Cells(Rows.Count, 1).End(xlUp).Row
For iCntr = lRow To 1 Step -1
If Cells(iCntr, 1) = Ticketnumber Then
Rows(iCntr).Delete
End If
Next
Sheets("Form").Select
Range("B1:B14").Select
Selection.Copy
Sheets("Tickets").Select
Worksheets("Tickets").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ActiveWorkbook.Worksheets("Tickets").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tickets").AutoFilter.Sort.SortFields.Add Key:= _
Range("A2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Tickets").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Worksheets("Form").Range("B1:B14").Clear
答案 0 :(得分:0)
Sub Tickets()
Dim i As Variant
Dim LR As Long
Dim IDN As Variant
Dim IDV As Variant
Dim IDNR As Integer
Dim IDNC As Integer
LR = Cells(Sheets("Overview").Rows.Count, 1).End(xlUp).Row
IDNR = ActiveCell.Row
IDNC = ActiveCell.Column
IDN = Cells(IDNR, IDNC).Value 'ID Name, you should highlight this cell when starting work
IDV = Cells(IDNR, IDNC - 1).Value 'ID Value, e.g. your ID 5001, if it is the adjacent cell left
If IDN = Application.WorksheetFunction.Index(Sheets("Overview").Range(Cells(1, 2), Cells(LR, 2)), Application.WorksheetFunction.Match(IDV, Sheets("Overview").Range(Cells(1, 1), Cells(LR, 1)))).Value Then
MsgBox "This matches!"
Else:
For i = 1 To LR
If IDV = Sheets("Overview").Cells(i, 1).Value Then
Sheets("Overview").Cells(i, 2).Value = IDN
Else:
End If
Next i
End If
End Sub
我使用了一些特定的工作表名称,因此请注意("概述"因为您在叙述中谈到了这一点),而ActiveCell应该是具有您希望验证的名称的单元格(单元格(1,1)读取" ID 5001"单元格(1,2)读取" Cage")。
这将检查概述列表是否" ID 5001" exists(匹配您现有的ID(与IDN相邻)并确定Name(" Cage")是否在相邻的单元格中。如果不存在,它将用您首选的ID名称替换Cage。