如何基于Excel for Mac 2016中另一张工作表中的数据将名称列表自动填充到一张工作表中
我搜索了似乎在回答这个问题的其他页面。我曾尝试在工作表之间使用if-then公式来实现这一点,但它不能很好地处理多个单元格/列。我想不出来 我在某个地方看到一个人提出了一个查询(但这是在Google中使用的,在Excel中不起作用)。关于如何最好地做到这一点,有什么建议吗 我正在尝试用Excel创建一个顾问数据库。我们在项目中使用顾问,各种顾问执行X个工作 表1将是包含以下数据的主列表 A1-公司名称 B1-专业1 C1-专业2 D1-专业3 (如此类推——可能多达10个专业),然后 L1-关键联系人 M1-电邮1 N1-电子邮件2 O1-电邮3 P1-电邮4 Q1-以前的项目 等等(可能会添加手机号码和更多) 第2页及以上内容将根据专业进行填充。 假设第2张被称为架构师。如果其中一个专业与“架构师”匹配,我希望它在架构师表(第2页)上为我提供以下内容: A1公司名称 B1主要联系人 C1电子邮件1 D1电邮2 E1电子邮件3 F1电子邮件4 G1以前的项目 有人能帮我弄清楚如何自动填充吗?随着主表的更改,我不必不断更新其他表 潜在的“查询”工作表如何基于Excel for Mac 2016中另一张工作表中的数据将名称列表自动填充到一张工作表中,excel,vba,macos,excel-formula,excel-2016,Excel,Vba,Macos,Excel Formula,Excel 2016,我搜索了似乎在回答这个问题的其他页面。我曾尝试在工作表之间使用if-then公式来实现这一点,但它不能很好地处理多个单元格/列。我想不出来 我在某个地方看到一个人提出了一个查询(但这是在Google中使用的,在Excel中不起作用)。关于如何最好地做到这一点,有什么建议吗 我正在尝试用Excel创建一个顾问数据库。我们在项目中使用顾问,各种顾问执行X个工作 表1将是包含以下数据的主列表 A1-公司名称 B1-专业1 C1-专业2 D1-专业3 (如此类推——可能多达10个专业),然后 L1-关键
工作表\u更改
事件(即,此代码应粘贴到用于“查询”的实际工作表的代码模块中):
这假设“查询”工作表的单元格A1是您要查找的值(即“专业”),该工作表的第2行将有标题,第3行之后将填充结果
我还没有测试过它,但它应该很接近您的需要。欢迎来到SO,我找不到一个明确的问题(这不是“我的代码”网站),您能修改您的帖子并定义一个要解决的问题吗?请阅读>完成。不寻找免费编码。寻找具体的建议。你是否有每个“公司”的“总清单”表,或者“A1”是指“第1行”,等等?该死。。。编辑。很抱歉。这听起来似乎最好使用MS Access而不是Excel注意:我不知道所有这些代码在Mac版的Excel上是否有效。它看起来相当基本,所以我认为你不会有任何问题。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
On Error GoTo ReEnableEvents
Application.EnableEvents = False
Dim lastRow As Long
Dim r As Long
Dim c As Long
Dim newRow As Long
Dim Speciality As String
Speciality = Range("A1").Value
'clear existing data
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 2 Then ' Assume headings are on row 2
Rows("3:" & lastRow).ClearContents
End If
'find new data
newRow = 2
With Worksheets("MasterList")
For r = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
For c = 2 To 11 ' loop through the speciality columns
If .Cells(r, c).Value = Speciality Then
newRow = newRow + 1
Cells(newRow, "A").Value = .Cells(r, "A").Value
Cells(newRow, "B").Value = .Cells(r, "L").Value
Cells(newRow, "C").Value = .Cells(r, "M").Value
Cells(newRow, "D").Value = .Cells(r, "N").Value
Cells(newRow, "E").Value = .Cells(r, "O").Value
Cells(newRow, "F").Value = .Cells(r, "P").Value
Cells(newRow, "G").Value = .Cells(r, "Q").Value
Exit For
End If
Next
Next
End With
ReEnableEvents:
Application.EnableEvents = True
End Sub