Microsoft Office Forums

Go Back   Microsoft Office Forums > >

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #8  
Old 03-16-2022, 10:50 PM
gmayor's Avatar
gmayor gmayor is offline Macro for setting decimal tabs in tables Windows 10 Macro for setting decimal tabs in tables Office 2019
Expert
 
Join Date: Aug 2014
Posts: 4,144
gmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud of
Default

The code assumed a header row in the table. As your new example doesn't have a header row the first row is ignored. Change the loop to start from 1 rather than 2.
Also in your new example there are tabs already set in the second row, which conflict with the tabs set by the macro so you need to clear those tabs first. These issues are why the macro appears not to change anything.

As there may be a header row or text in the table, I have added a check function so that cells without numbers are ignored. If you don't need that you can omit the function and its call.

Code:
Sub Macro1()
Dim oTable As Table
Dim i As Integer
Dim oCell As Cell
Dim oRng As Range
Dim iPos As Integer
    If Selection.Information(wdWithInTable) = False Then
        MsgBox "Put the cursor in the table to process first!", vbCritical
        Exit Sub
    End If
    Set oTable = Selection.Tables(1)
    With oTable
        For i = 1 To .Rows.Count
            For Each oCell In .Rows(i).Cells
                iPos = oCell.Width - oCell.LeftPadding - oCell.RightPadding - 20
                Set oRng = oCell.Range
                If IsNumbered(oCell) = True Then
                    oRng.ParagraphFormat.TabStops.ClearAll
                    oRng.Collapse 1
                    oRng.MoveEndWhile Chr(32)
                    oRng.Text = ""
                    oCell.Range.ParagraphFormat.TabStops.Add _
                            Position:=iPos, _
                            Alignment:=wdAlignTabDecimal, _
                            Leader:=wdTabLeaderSpaces
                End If
            Next oCell
        Next i
    End With
    Set oTable = Nothing
    Set oCell = Nothing
    Set oRng = Nothing
End Sub

Private Function IsNumbered(oTableCell As Cell) As Boolean
Dim sValue As String
Dim oCellRng As Range
    Set oCellRng = oTableCell.Range
    oCellRng.End = oCellRng.End - 1
    sValue = Trim(oCellRng.Text)
    IsNumbered = IsNumeric(sValue)
End Function
__________________
Graham Mayor - MS MVP (Word) (2002-2019)
Visit my web site for more programming tips and ready made processes www.gmayor.com
Reply With Quote
 

Tags
decimal tab, table

Thread Tools
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
Decimal tabs with space as thousands separator harry Word 1 12-22-2023 02:59 PM
Macro for setting decimal tabs in tables Macro to delete tabs in Word Shelley Lou Word VBA 16 12-21-2020 06:34 AM
Macro for setting decimal tabs in tables I need a macro to format images and remove tabs. help LuisXVI Word VBA 4 11-12-2018 03:12 PM
Setting tabs relative to block of text kirkm Word 8 09-06-2016 07:54 PM
Pulling 2 digits before a decimal point from adjoining cell then zeros after decimal jadess916 Excel 1 06-26-2014 03:48 AM

Other Forums: Access Forums

All times are GMT -7. The time now is 05:16 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft