我的同事经常不得不发出邀请面试(一次最多几十次)。我正在编写一个宏来帮助他们根据所有受访者的信息自动生成Outlook会议邀请,我们将这些信息存储在Excel数据文件中。
例如,“亲爱的[INSERT NAME],我们想邀请您参加[插入日期] [INSERT SUBJECT]的采访。请使用[INSERT PHONE NUMBER]致电面试,并准备好谈谈患者[INSERT CONDITION]。“
因为我的同事不知道VBA我试图让他们在输入表中写下它并让程序读取和格式并将其存储在名为MeetingInviteBody的变量中。所以我需要获取单元格的值并将其作为变量定义读取。问题是整个事物是作为字符串输入的,即使单元格的内容是部分字符串和部分引用另一个变量。有办法解决这个问题吗?
提前谢谢!
附录:我希望这能澄清我的目标。这是我作为测试写的宏:
Sub MultipleDataTypeInput()
Dim FirstLineofText As Variant
Dim PhysicianName As String
PhysicianName="Dr. Smith"
FirstLineofText=Sheets("Sheet1").Cells(1,1).Value
MsgBox(Prompt:=FirstLineofText)
End Sub
我把“亲爱的”& PhysicianName&单元格A1中的“,”我希望Excel能够将宏读作为 FirstLineofText =“亲爱的”& PhysicianName& “” 如果发生这种情况,MsgBox会说“亲爱的史密斯博士”。 相反,提示是“”亲爱的“& PhysicianName&”,“”
这有意义吗?
答案 0 :(得分:1)
执行此操作的一种方法是在VBA中使用replace函数。
但是,在单元格A1中,写下"Dear PhysicianName,"
并删除&
连接。 (如果你在FirstLineofText = "Dear " & PhysicianName & ","
)
Sub MultipleDataTypeInput()
Dim FirstLineofText As Variant
Dim PhysicianName As String
PhysicianName="Dr. Smith"
FirstLineofText=Sheets("Sheet1").Cells(1,1).Value
FirstLineofText = Replace(FirstLineOfText,"PhysicianName",PhysicianName)
MsgBox(Prompt:=FirstLineofText)
End Sub
我建议这样做,因为你说同事正在编写他们自己的脚本,我不想提出一个全新的方法,因为它可能会让你感到困惑。也就是说,我认为有更有效的方法来设计它。
答案 1 :(得分:0)
我认为你的逻辑落后
你可能想要这个Sub MultipleDataTypeInput()
Dim PhysicianName As String
Dim PatientName As String
PhysicianName = Sheets("Sheet1").Range("A1").Value ' this cell should hold "Dr. Smith"
PatientName = Sheets("Sheet1").Range("B1").Value
MsgBox "Dear" & PhysicianName & ", We would like to invite you to an interview about " & PatientName
End Sub