Vba 跨多个工作表的宏查询

Vba 跨多个工作表的宏查询,vba,excel,Vba,Excel,措辞我的问题有点棘手,所以我加入了屏幕截图,使之更容易。我有两个单独的电子表格,目前没有链接在一起。我被要求做的是: 对于旁边有*的下拉列表,请将此*下拉列表转换为首字母缩略词,即如果是家访*,则此下拉列表将转换为HV,并将其自动输入单元格位置X。请参考图1和图2 因此,用户将单击工作表1,选择相关的下拉字段,然后分配该任务所用的时间。然后,第二张表将使用这些信息进行自我更新——它将插入用户名、程序和活动。这就是它变得非常棘手的地方。根据下拉选择,如果它是星号*,则根据字段类型将其转换为一组首字

措辞我的问题有点棘手,所以我加入了屏幕截图,使之更容易。我有两个单独的电子表格,目前没有链接在一起。我被要求做的是:

对于旁边有*的下拉列表,请将此*下拉列表转换为首字母缩略词,即如果是家访*,则此下拉列表将转换为HV,并将其自动输入单元格位置X。请参考图1和图2

因此,用户将单击工作表1,选择相关的下拉字段,然后分配该任务所用的时间。然后,第二张表将使用这些信息进行自我更新——它将插入用户名、程序和活动。这就是它变得非常棘手的地方。根据下拉选择,如果它是星号*,则根据字段类型将其转换为一组首字母缩略词,然后根据提供的输入日期将其放置在其中一个数据字段中


我设计了这两个电子表格,它们的后台都有宏,但我似乎不知道如何最好地执行它。您是否建议使用转置函数,首先检查日期标准,然后使用INDEXMATCH函数将标准与预定义的名称范围相匹配,从而自动将家访等转换为HV?我也不确定如何为读取的每个新条目插入分隔符。如果有人能提供帮助,我将不胜感激。

我不能100%确定我是否理解你的问题,但这里有:

添加一个工作表更改事件来查找下拉列表单元格中的更改,然后将其转换为首字母缩略词,怎么样

将以下代码放在关注表内:

Private Sub Worksheet_Change(ByVal Target As Range)

    'If Cell A1 is changed, put the acronym into A2
    If Target.Row = 1 And Target.Column = 1 Then
        Cells(2, 1) = GetAcronym(Target.Value)
    End If

End Sub

Function GetAcronym(TheText As String) As String

    Dim result As String
    Dim x As Long

    'Always grab the first letter
    result = Mid(TheText, 1, 1)

    'Get the other letters
    For x = 2 To Len(TheText) - 1
        If Mid(TheText, x, 1) = " " Then result = result & Mid(TheText, x + 1, 1)
    Next x

    GetAcronym = UCase(result)

End Function

谢谢我不知道这是否能解决问题。这无疑是一个有趣的提议——但问题是,将有多个条目被输入,并且它们可能都在同一天,即John Doe在4月17日进行了3次学校访问和1次家庭访问。然后字段需要在第二张纸上显示为:SV,SV,SV,HV。好的,很明显我没有得到你给出的示例。这里有一些问题可以帮助我澄清:1。第一个电子表格-它有多少行?您可以在红色标题下输入无限数量的条目吗?2.根据字段类型将其转换为一组首字母缩略词是什么意思?有时它是首字母缩略词,有时它应该被忽略?3.你怎么知道哪张表的价值应该增加到目标?嗨,D'Noob,我刚刚附上了一个新的屏幕截图表1。第1页有多少行无关紧要,这无关紧要。其工作原理是,在本工作表之前,我有一个宏,要求个人输入客户、案例经理、合同类型等的名称。通过宏,这将转换到工作表1中。然后,个人将单击并选择某些下拉选项电子邮件、电话等,然后右侧的图表将更新并计算一些指标。例如,如果选择的项目是咨询-家访*,然后,我的INDEXMATCH将该功能识别为面对面访问,因此需要将其插入第2页。3.这是一个很好的问题-让我想想如何用这个词,然后再给你回复。。!差不多。我暂时不谈这件事,以后再谈。无论如何谢谢你!