View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
Dave Marden[_6_] Dave Marden[_6_] is offline
external usenet poster
 
Posts: 14
Default I can't figure out the correct syntax for referencing a workbook.

Thank you kindly sir, I greatly appreciate it.

Dave Marden

"Dave Marden" wrote in message
...
Thanks JMB, I will try this out later tonight.

Dave Marden


"JMB" wrote in message
...
Instead of
wbName2 = ActiveWorkbook.FullName
set bk2 = Workbooks(wbName2)


I think you just need
set bk2 = ActiveWorkbook

However, it really is not necessary to set a variable for the workbook
that
is running the code. You can always reference the workbook containing
the
code that is running with ThisWorkbook. Also, if you need to refer to
the
same object many times, you can use a With statement

With Thisworkbook
.Worksheets("Competitors A-Z").Range("D29") =
bk.Worksheets("Competitors A-Z").Range("D29")
'Archery League Name
.Worksheets("League's Score Board").Range("ArcheryLeagueName") =
bk.Worksheets("League's Score Board").Range("ArcheryLeagueName")

'etc

End With



"Dave Marden" wrote:

I have decided to incorporate this change into all upcoming versions
of
my program. This has brought up a new problem. "Set bk =
Workbooks(wbName)" works fine for referencing the filename so I tried to
use
the same idea but for some reason it always gives me a "runtime error 9"
"Subscript out of range" error. I simply used bk2 for doing this. I
figured I didn't need the error checking since this file is obviously
going
to be already running. Any other way of referencing this or am I
missing
something here?

Public Sub cmdPullDataFromOldFile_Click()
Dim wbName As String, bk As Workbook
Dim bk2 As Workbook
wbName = Application.GetOpenFilename
wbName2 = ActiveWorkbook.FullName
set bk2 = Workbooks(wbName2)
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Are you sure you want to copy all user input data from " &
wbName
& " to this file?" ' Define message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Define buttons.
Title = "Confirm Data Update" ' Define title.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' User chose Yes.
Dim bClosed As Boolean
On Error Resume Next
Set bk = Workbooks(wbName)
On Error GoTo 0
If bk Is Nothing Then
bClosed = True
Set bk = Workbooks.Open(wbName)
End If
'Getting Data From Old Version
'Handicap
bk2.Worksheets("Competitors A-Z").Range("D29") =
bk.Worksheets("Competitors A-Z").Range("D29")
'Archery League Name
bk2.Worksheets("League's Score
Board").Range("ArcheryLeagueName") =
bk.Worksheets("League's Score Board").Range("ArcheryLeagueName")
'Max Make-Up Scores
bk2.Worksheets("Competitors A-Z").Range("MaxMakeupScores") =
bk.Worksheets("Competitors A-Z").Range("MaxMakeupScores")
'Names
bk2.Worksheets("Competitors A-Z").Range("X4:X27").Value =
bk.Worksheets("Competitors A-Z").Range("X4:X27").Value
'Scores, X-Counts, Make-Up, and Blind Data
bk2.Worksheets("Competitors A-Z").Range("AB4:BK27").Value =
bk.Worksheets("Competitors A-Z").Range("AB4:BK27").Value
If bClosed Then bk.Close Savechanges:=False
Else ' User chose No.
MsgBox "You Have Chosen Not To Update This File With Another
Files
Data"
End If
End Sub

Any help appreciated,
Dave Marden