Jag tror du blir tvungen att ha en temporär variabel också, annars hoppar den (som du säkert vet) inte in i repeaten eftersom myAnswer lever kvar...
Det här borde funka ( och nu får du berätta för mig hur man skapar kodblock )
property myAnswer : ""
property myAnswerDefaultButton : 2
set myCurrentAnswer to ""
repeat until myCurrentAnswer is not "" -- Rad 1
set myQuestionResult to display dialog "Här är frågan." & return & "Vilken text vill du mata in?" default answer myAnswer buttons {"Avbryt", "Inget", "Ersätt"} default button myAnswerDefaultButton cancel button 1
if button returned of myQuestionResult is "Inget" then exit repeat -- Rad 2
set myCurrentAnswer to text returned of myQuestionResult
set myAnswer to myCurrentAnswer
end repeat -- Rad 3
-- set myAnswer to text returned of myQuestionResult
set myAnswerButton to button returned of myQuestionResult
if myAnswerButton is "Ersätt" then
set myAnswerDefaultButton to 3
else if myAnswerButton is "Inget" then
set myAnswerDefaultButton to 2
set myAnswer to ""
end if