我制作了一个excel visual basic脚本,它从excel表中获取数据,并在每行的单词表中生成一个段落。该文档的默认语言是希伯来语,文本右对齐,方向从右到左。 对于段落中的一行(最后一行),我想将语言设置为英语,从左到右设置方向,以及右对齐。然后,对于下一段中的第一行,改回希伯来语,从右到左,右对齐。 当在段落的最后一行记录单词中的宏时,按住home,shift end,单击工具栏上的图标以根据需要更改语言,方向和对齐方式,我得到:
Sub test()
Selection.HomeKey Unit:=wdLine
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Application.Keyboard (2057)
Selection.LtrPara
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
End Sub
让我感到惊讶的一件事是,改变语言就像我使用键盘一样,而不是像对象的属性一样,就像方向和对齐一样。 如何将其翻译为excel visual basic?有问题的行目前使用以下内容添加:
With f
.Content.InsertAfter Format(a, "standard") & " x " & Format(b, "#,##0.000") & " x " & Format(c, "#,##0.000") & " / " & Format(d, "#,##0.000") & " = " & Format(e, "standard")
.Content.InsertParagraphAfter
End With
谢谢,
恩斯特
答案 0 :(得分:0)
好的,我有一个解决方法,这只是一个部分答案。这不是Excel visual basic中的解决方案,而是Word中的解决方案:
搜索^13[!^13]@x*^13
的所有出现,然后进行语言,对齐和方向更改。
当将其作为单词中的宏录制时,我得到以下内容:
Sub Macro1()
Selection.Find.ClearFormatting
With Selection.Find
.Text = "^13[!^13]@x*^13"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.LtrPara
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
Selection.Find.ClearFormatting
With Selection.Find
.Text = "^13[!^13]@x*^13"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
End Sub
但是当在新生成的Word文档上运行它时,这不会做它应该做的事情。有关解决方法的任何想法吗?顺便说一下,我可以使用excel vb为excel vb生成的文档添加和运行word宏吗?