Maybe you are using a different type of table? Or the table isn't using hard coded colors? It is working for me. If you attach a simple drawing with the table you'd like to change I could take a look at it. Regardless, here is the code for just the blocks.
(defun c:BlockEntityUpdate ( / oldColor newColor blks ct)
;Start Main
(or *acdoc* (setq *acdoc* (vla-get-activedocument (vlax-get-acad-object))))
(vla-StartUndoMark *acdoc*) ;set an undo point for quickly reverting changes
(setq oldColor (getint "Enter number of OLD color of block entities to change from: ")) ;old color
(setq newColor (getint "Enter number of NEW color of block entities to change into: ")) ;new color
;Change Blocks
(setq blks (vla-get-blocks *acdoc*)) ;vla blocks collection
(setq ct 0) ;count for how many entities colors were changed
(vlax-for blk blks ;loop through each block in the blocks collection
(if (not (or (= :vlax-true (vla-get-islayout blk)) (= :vlax-true (vla-get-isxref blk)))) ;make sure not an xref or paper/model/layout block
(vlax-for obj blk ;loop through each entity in the block
(if (= (vla-get-color obj) oldColor) ;entity color compare
(progn
(vla-put-color obj newColor) ;update entity color
(setq ct (+ ct 1)) ;count the entity color change
)
)
)
)
)
(vla-regen *acdoc* acActiveViewport) ;regen the viewport to display the updates to the user
(print (strcat "Updated " (itoa ct) " entities from color: " (itoa oldColor) " into new color: " (itoa newColor) ".")) ;notify the user of the changes
(vla-EndUndoMark *acdoc*) ;end the undo point
(princ)
)