Microsoft Office Forums

Go Back   Microsoft Office Forums > >

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 12-12-2014, 06:43 PM
ptmuldoon ptmuldoon is offline Searching Arrays without Loops? Windows 7 64bit Searching Arrays without Loops? Office 2013
Advanced Beginner
Searching Arrays without Loops?
 
Join Date: Sep 2014
Posts: 93
ptmuldoon is on a distinguished road
Default Searching Arrays without Loops?

I was able to put the below together, and it seems to work ok, but I think this could be more efficient with an array match of some sort. And still trying to learn more on that.



I would think maybe I could take an array of NamedRanges from Excel. And a 2nd Array of BookMarks from Word. Then compare/match the 2 arrays, placing the Matches into a new, third array, and then update my Word BookMarks with the values of the named ranges?

But I think i'm trying compare a 1 dimensional (bookmarks) to a 2 dimensional (NamedRange Name and Values)?

This code currently works. But can it be more efficient?
Code:
Sub Test()
    Dim f, xlWorkBook, NmdValue As Object
    Dim Bm, Nm As Variant
    Dim Bmk, NmdRng As String

    'Choose the Excel File
    Set f = Application.FileDialog(msoFileDialogFilePicker)
    f.Title = "Please Select A New File"
    f.AllowMultiSelect = False
    f.Filters.Clear
    f.Filters.Add "Microsoft Excel Files", "*.xls, *.xlsb, *.xlsm, *.xlsx" 'Limit to Excel Files Only

    If f.Show = -1 Then
        Set xlWorkBook = GetObject(f.SelectedItems(1))
    Else 'user clicked cancel
        Exit Sub
    End If
          
    For Each Bm In ActiveDocument.Bookmarks
        Bmk = Bm.Name
             
        ' Check Each BookMark for a Matching NamedRanged in the Excel File
        For Each Nm In xlWorkBook.Names
        NmdRng = Nm.Name
        Set NmdValue = xlWorkBook.Names(NmdRng).RefersToRange
        
             If Bmk = NmdRng Then
                ActiveDocument.Bookmarks(Bmk).Range.InsertAfter NmdValue
                'UpdateBM Bmk, NmdValue
                 Exit For
             End If
        Next Nm
        
    Next Bm
    
    ActiveDocument.Bookmarks.ShowHidden = True
    ActiveWindow.View.ShowBookmarks = False
    
End Sub


Sub UpdateBM(BookmarkToUpdate As String, TextToUse As String)
    Dim BMRange As Range
    Set BMRange = ActiveDocument.Bookmarks(BookmarkToUpdate).Range
    BMRange.Text = TextToUse
    ActiveDocument.Bookmarks.Add BookmarkToUpdate, BMRange
End Sub
Reply With Quote
 



Similar Threads
Thread Thread Starter Forum Replies Last Post
Filling cells with random numbers using loops? (VBA) Sajj Excel Programming 4 04-10-2013 02:29 PM
Searching Arrays without Loops? re-naming arrays in VBA? JDevsFan Excel Programming 4 03-15-2012 08:44 AM
HTML in email loops endlessly rbtroj Outlook 0 05-19-2011 12:29 PM
Searching Arrays without Loops? Powerpoint loops, but not to beginning imeister PowerPoint 1 02-02-2011 02:05 PM
loops within presentations supateach PowerPoint 1 11-23-2010 04:42 AM

Other Forums: Access Forums

All times are GMT -7. The time now is 03:03 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