簡體   English   中英

VBA讀取單元格值作為變量而不是文本

[英]VBA Reading Cell Value As Variable Definition Rather Than Text

我的同事經常不得不發出邀請進行面試(一次最多數十次)。 我正在編寫一個宏,以幫助他們根據我們存儲在Excel數據文件中的所有受訪者的信息自動生成Outlook會議邀請。

例如,“尊敬的[插入名稱],我們想邀請您參加[插入日期]的[插入主題]采訪。請使用[插入電話號碼]參加采訪,並准備談論患有[插入]的患者條件]。”

因為我的同事不知道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

我在單元格A1中放入了“親愛的”和“ PhysicianName”和“,”,我希望Excel能夠將宏讀取為
FirstLineofText =“ Dear”&PhysicianName&“,”如果發生這種情況,MsgBox會說“ Dear Dr. Smith”,相反,提示是“” Dear“&PhysicianName&”,“”

這有意義嗎?

一種方法是在VBA中使用替換功能。

但是,在單元格A1中,輸入"Dear PhysicianName,"並消除您的&串聯。 (如果您嚴格使用VBA編寫代碼,則該代碼的工作方式將起作用。代碼會將這些值連接在一起。例如: 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

我建議采用這種方式,因為您說的是同事們正在編寫自己的腳本,而我不想提出一種全新的方法,因為這可能會使您感到困惑。 就是說,我認為有很多更有效的方法來設計它。

我認為你的邏輯落后

你可能想要這個

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM