Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于Excel for Mac 2016中另一张工作表中的数据将名称列表自动填充到一张工作表中_Excel_Vba_Macos_Excel Formula_Excel 2016 - Fatal编程技术网

如何基于Excel for Mac 2016中另一张工作表中的数据将名称列表自动填充到一张工作表中

如何基于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-关键

我搜索了似乎在回答这个问题的其他页面。我曾尝试在工作表之间使用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以前的项目

有人能帮我弄清楚如何自动填充吗?随着主表的更改,我不必不断更新其他表

潜在的“查询”工作表
工作表\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