E3是公司名称的下拉列表,在同一张表格中,我有一个表格,用户将输入5个属性的信息。我正在尝试编写一个宏,它将获取用户输入并将其复制到具有矩阵的不同工作表,其中列A是公司名称,列B到列F是5个属性的输入值。我为它写了下面的代码,但它没有运行......
Private Sub PopulateValue()
Dim x As Integer
Dim y As Integer
x = WorksheetFunction.Match(Sheets("New Client Report").Range("E3"), Sheets("Client Report Remarks").Range("A:A"), 0)
y = WorksheetFunction.Match(ActiveCell.Offset(-1, -1).Address, Sheets("Client Report Remarks").Range("A1:G1"), 0)
ActiveCell.Offset(-1, 0).Select
Selection.Copy
Sheets("Client Report Remarks").Cells(x, y).PasteSpecial xlPasteValues
End Sub
这里我试图识别备注表中与公司(E3)对应的行和列以及具有输入信息的单元属性(ActiveCell.Offset(-1,-1).Address)。活动单元格是具有输入信息的单元格下方的单元格,属性名称位于输入单元格左侧一列中的单元格
这段代码有什么问题?对不起,如果我的代码看起来很荒谬,我对VBA编程完全不熟悉
答案 0 :(得分:1)
Private Sub PopulateValue()
Dim x, y 'using Variant to allow for catching errors from Match()
Dim sht as WorkSheet
Set sht = Sheets("Client Report Remarks")
x = Application.Match(Sheets("New Client Report").Range("E3"), sht.Range("A:A"), 0)
y = Application.Match(ActiveCell.Offset(-1, -1).Address, sht.Range("A1:G1"), 0)
'?? do you mean ActiveCell.Offset(-1, -1).Value here ??
If Not IsError(x) And Not IsError(y) Then
sht.Cells(x,y).Value = ActiveCell.Offset(-1, 0).Value
Else
MsgBox "Couldn't locate copy destination!"
End If
End Sub