#1
|
|||
|
|||
1. Apply to current row. 2. De-select row afterwards.
Hello! New to the forum. Thank you!
I have been trying to finish the macro as seen below. However, the last 2 things I just can't seem to figure out. Code:
Sub TblCellShadeOf_TEN_Percent() ' ' ------------------------------------ Dim tbl As table Set tbl = ActiveDocument.Tables(1) tbl.Rows(6).Select ' ------------------------------------ With Selection.Cells With .Shading .Texture = wdTextureNone .ForegroundPatternColor = wdColorAutomatic .BackgroundPatternColor = wdColorGray10 End With End With End Sub 2. How to de-select the row after the shading is applied. Once the shading is done, the row _is_ shaded, but I'd rather the current row have the 10% shading applied without showing it still selected in the end. I'm sure it's represented by something in the code above, but I'm not very good at vba, so can't figure out what code does that (I know, I know ... dumb ... Thank you very much in advance for any help in this regard! |
#2
|
|||
|
|||
In Word, whilst there is an open document there is always a selection, as the cursor must always be somewhere in the document.
If you select something in code and don't want that to be selected when your code has finished, you must move the selection somewhere else. A common way to do this is to record what was selected at the start and re-select it at the end. For example: Code:
Dim initSel As Range: Set initSel = Selection.Range 'working code initSel.Select For the specific case in your question it is not necessary to select the entire row. To prevent errors, your code should first check that the selection is inside a table. Then you can access the row and its cells from the selection, as below. Code:
Sub TblCellShadeOf_TEN_Percent() If Selection.Information(wdWithInTable) Then With Selection.Rows(1).Cells With .Shading .Texture = wdTextureNone .ForegroundPatternColor = wdColorAutomatic .BackgroundPatternColor = wdColorGray10 End With End With End If End Sub |
#3
|
|||
|
|||
[RESOLVED] 1. Apply to current row. 2. De-select row afterwards.
Quote:
And thank you for the lesson! We VBA-seemingly-forever-newbs get far recording our actions, but don't always know how to fix things so the code is nice and neat and efficient! Thank you! |
#4
|
|||
|
|||
You're welcome.
Recording a macro can be a useful step in discovering the syntax for an action, but the code produced, if any, will be of inferior quality. The VBA editor has some tools that can help you learn and which are only a keypress away.
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Need to apply Heading1 to select rows | bobk544 | Word VBA | 3 | 06-09-2018 05:24 AM |
VBA Word Table - Select More than 1 Column at a time - Apply Formatting | jc491 | Word VBA | 12 | 09-24-2015 06:03 AM |
How to select the first row of the current table | Jennifer Murphy | Word VBA | 9 | 01-29-2012 06:50 PM |
How to call current PC date and/or current PC year | KIM SOLIS | Excel | 2 | 11-04-2011 06:09 PM |
Auto insert current month's name and current year | Styler001 | Word | 4 | 01-25-2010 06:40 PM |