2016-11-19 742 views
0

使用键盘&鼠标我可以在表格中选择多个不连续的单元格,并更改字体大小&颜色和单元格阴影等属性。我也可以选择多列(连续的,没有尝试不连续的)。我找不到在VBA中执行此操作的方法,并且记录宏无法捕获任何内容。用VBA在Word表格中选择不连续的单元格

我的目标很简单,通过单元格(x,y)将单元格(1,1)遮住一种颜色,然后在另一种颜色之后单元格。我无法让Word范围为我工作,因为他们显然是先按行再按列。

我有一个4列X 20行表(用于打印标签)。如果已经打印出第1列2列和第3列的一半,我想表示通过使表格中的那些单元格成为一个阴影并且列3的下半部分(第11-20行)和列4的所有第4列成为不同的阴影。我目前通过循环遍历表中的所有单元格来实现它,并使用行索引if COLOR INDEX与If THE ELSE,但是必须有更有效的方法。我知道如果我先使用行然后再使用列(这就是我现在正在做的),那么会更容易些,但是它激怒了我,我无法在VBA中做一些我可以手动执行的操作。

真实情况稍微复杂一些,因为表单上可能有两种不同的标签类型,其中有不同的文字和不同的图片。任何帮助将不胜感激

+0

http://stackoverflow.com/questions/33730750/vba-ms-word-work-with-mutiple-discontinuous-selection –

回答

0

0)不使用行,请使用绝对单元格范围

1)如果你有3个部分,你应该选择它们,然后分别重新着色他们

2)下面是从我的宏我的文档

ActiveDocument.Range(Start:=ActiveDocument.Tables(1) _ 
    .Cell(3, 11).Range.Start, End:=ActiveDocument.Tables(1) _ 
    .Cell(ActiveDocument.Tables(1).Rows.Count, 17).Range.End).Select 

3)在使用中只选择细胞中的所有行的11-17过去3在第一表的一个片段以下将颜色设置为固体光源蓝色 4)我也推荐wdCo lorAutomatic确保文本将是一个新的背景

Selection.Shading.Texture = wdTextureNone 
    Selection.Shading.ForegroundPatternColor = wdColorAutomatic 
    Selection.Shading.BackgroundPatternColor = wdColorLightTurquoise 

5)记得正确选择你的表,可见如果选择表首先,你可以使用

set aTable as selection.tables(1) 

6),以确保您在右表

相关问题