Excel 为输入的条件列表运行公式,而无需逐个输入–;我需要宏吗?

Excel 为输入的条件列表运行公式,而无需逐个输入–;我需要宏吗?,excel,vba,Excel,Vba,我开发了一个电子表格,当用户输入搜索条件(通常是一个人的名字)时,它会从考试笔记数据库中生成一个写得很好的连贯句子。基本上,如果你在单元格A1中输入Fred的名字,那么单元格A2返回一句话“Fred在3月15日参加了5级数学考试,成绩为89%” 到目前为止,我对此相当满意。但是,假设我在第2页的a列中有一个100个名字的列表,我想为其生成句子:目前,我将这些名字一个接一个地输入单元格A1,然后将生成的句子复制并粘贴到一个单独的文档中 有没有更简单的方法?理想情况下,对于第2页A列中的每个名称,相

我开发了一个电子表格,当用户输入搜索条件(通常是一个人的名字)时,它会从考试笔记数据库中生成一个写得很好的连贯句子。基本上,如果你在单元格A1中输入Fred的名字,那么单元格A2返回一句话“Fred在3月15日参加了5级数学考试,成绩为89%”

到目前为止,我对此相当满意。但是,假设我在第2页的a列中有一个100个名字的列表,我想为其生成句子:目前,我将这些名字一个接一个地输入单元格A1,然后将生成的句子复制并粘贴到一个单独的文档中

有没有更简单的方法?理想情况下,对于第2页A列中的每个名称,相应生成的句子将自动输入到B列中,然后电子表格将继续输入下一个名称

我需要一个宏来做这件事,还是可以用公式来做?目前,我只是想知道从哪里开始,因为我看不到树木的树木


我希望我已经解释清楚了。请让我知道,如果我能以任何方式澄清

不要使用单元格A2来保存句子公式,而是使用相邻单元格B1

这样,您就可以用名称列表填充列A,只需向下复制单元格B1

编辑#1:

这是一个基于宏的解决方案。假设在Sheet1A1中包含名称,而A2中包含大公式。假设在Sheet2中,A列包含姓名列表,B列将接收句子。将以下内容放入标准模块中:

Sub SentenceMaker()
    Dim s1 As Worksheet, s2 As Worksheet
    Dim N As Long, i As Long
    Set s1 = Sheets("Sheet1")
    Set s2 = Sheets("Sheet2")
    N = Cells(Rows.Count, "A").End(xlUp).Row
    For i = 1 To N
        s1.Range("A1").Value = s2.Cells(i, 1).Value
        DoEvents
        s2.Cells(i, 2).Value = s1.Range("A2").Value
    Next i
End Sub
宏非常易于安装和使用:

  • ALT-F11将显示VBE窗口
  • ALT-I ALT-M打开一个新模块
  • 粘贴内容并关闭VBE窗口
  • 如果保存工作簿,宏将与工作簿一起保存。 如果在2003年以后使用Excel版本,则必须保存 文件的格式为.xlsm而不是.xlsx

    要删除宏,请执行以下操作:

  • 如上所述打开VBE窗口
  • 清除代码
  • 关闭VBE窗口
  • 要使用Excel中的宏,请执行以下操作:

  • ALT-F8
  • 选择宏
  • 触跑
  • 要了解有关宏的更多信息,请参阅:


    必须启用宏才能工作

    感谢您的回复-不幸的是,生成的公式非常复杂,跨越了许多页面。如果我要为每个标准复制它,我必须为每个名称准备大约4或5张表!我想知道是否有一种自动化excel的方法,只需输入第一个名称,收集结果,然后转到下一个名称?我以前从未使用过excel宏,但我怀疑这可能就是答案。只是需要有经验的人在这方面!