2013-10-26 87 views
1

我有一個活動工作簿,其中必須打開兩個其他工作簿並將其作爲活動工作簿。 但包含宏的工作簿仍保持爲活動工作簿。 請幫忙。通過打開的對話框打開文件並將該文件保存爲活動工作簿

With myFile 
.Title = "Choose File" 
.AllowMultiSelect = False 
If .Show <> -1 Then 
Exit Sub 
End If 
SF = .SelectedItems(1) 
SF = Application.GetOpenFilename(SF) 
MsgBox SF 

Workbooks.Open Filename:=(SF) 



wb1 = ActiveWorkbook.FullName 
MsgBox "SF" & SF 
MsgBox "WB1" & wb1 

WB1顯示宏包含工作簿的路徑。不是SF(源文件從打開文件對話框中選擇)

此外,下面的代碼是否正確?

For Rw = 4 To DF.Sheet1.UsedRange.Rows.Count 
For Rw1 = 3 To SF.Sheet1.UsedRange.Rows.Count 
If df.Sheet1.Cells(Rw, 1).Value = sf.Sheet1.Cells(Rw, 53).Value Then 

在此先感謝

回答

1

你需要你object variable打開工作簿這使得它更容易是指每個工作簿的在你的代碼相關聯。因此,而不是這一行:

Workbooks.Open Filename:=(SF) 

嘗試這種解決方案:

Dim openWB as Workbook 
Set openWB = Workbooks.Open(SF) 
'and to activate it somewhere in your code you will need the following line: 
openWB.Activate 

請記住,只有一個工作簿可在當時活躍。

如果需要額外的工作簿的工作,你可以再次添加類似的代碼,但使用新的變量爲這個(如Dim openWBNext as workbook等...)

你問題的第二部分...你的代碼不正確。但是你申請object variables後,我提出上面,你可以用這個結構:

For Rw1 = 3 To openWB.Sheet1.UsedRange.Rows.Count 
If openWBNext.Sheet1.Cells(Rw, 1).Value = openWB.Sheet1.Cells(Rw, 53).Value Then 
+0

親愛Kazjaw,它完美的作品。我還有一個問題。如何從輸入框移位時間(「5:00:00)」檢測「00:30:00」。再次感謝您的幫助。 – user2851228

+0

如果您對答案感到滿意,您可以隨時做[THIS](http:/ /meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)。對於其他問題,請詢問新的單獨問題,請不要在評論中提問? –

相關問題