Board logo

標題: 請教如何修改程式 [打印本頁]

作者: 周大偉    時間: 2016-12-2 18:51     標題: 請教如何修改程式

請教大大們,
下次程式是個下拉傳回資料程式, 程式把另一檔案資料傳回, 當程式運行中, 會自行開啟另一檔案, 傳回資料後, 該被開啟檔案會自行關聞, 現時我希望能做到程式必須於兩個檔案同時開啟下才能運行. 請大大們指導, 謝!!
Private Sub ComboBox1_Change()
With ComboBox1
i = .ListIndex
If i = -1 Then Exit Sub
ar = Array(Month(Date), Date, .List(i, 1), .List(i, 2), .List(i, 3), .List(i, 4), "", .List(i, 5))
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(, 8) = ar
End With
End Sub

Private Sub ComboBox1_DropButtonClick()
Application.ScreenUpdating = False
fs = ThisWorkbook.Path & "\sal名冊.xlsm"
With Workbooks.Open(fs)
   With .Sheets("人員名稱")
      ar = .Range(.[A4], .[A3].End(xlDown).Offset(, 5))
      With ComboBox1
      .ColumnCount = 3
      .List = ar
      .ColumnWidths = "0,30,40"
      End With
    End With
.Close 0
End With
Application.ScreenUpdating = True
End Sub
作者: 周大偉    時間: 2016-12-3 10:27

大大們, 早晨
如何修改程式, 沒有回應
現把檔案上傳, 檔案在申請表下拉中選擇後傳回資料, 無須開啟資料庫檔案, 小弟現希望能在兩個檔案同時開啟下運行, 傳回資料後, 兩個檔案依然開著..謝謝!!
[attach]26009[/attach][attach]26010[/attach]
作者: 准提部林    時間: 2016-12-3 10:40

Private Sub ComboBox1_DropButtonClick()
Dim DataBook As Workbook
On Error Resume Next
Set DataBook = Workbooks("資料庫.xlsm")
On Error GoTo 0
If DataBook Is Nothing Then MsgBox "資料庫檔案未開啟! ": Exit Sub

With DataBook.Sheets("工作表1")
   ar = .Range(.[A4], .[A3].End(xlDown).Offset(, 5))
   With ComboBox1
      .ColumnCount = 3
      .List = ar
      .ColumnWidths = "0,30,40"
   End With
End With
End Sub
作者: 周大偉    時間: 2016-12-3 13:23

回復 3# 准提部林
感謝協助, 祝願身體健, 快樂, 謝謝!!
作者: c_c_lai    時間: 2016-12-3 17:17

回復 2# 周大偉
試試難!
  1. Private Sub ComboBox1_DropButtonClick()
  2.     Dim DataBook As Workbook, fs As String
  3.    
  4.     Application.ScreenUpdating = False
  5.     On Error Resume Next
  6.     fs = ThisWorkbook.Path & "\資料庫.xlsm"
  7.     Set DataBook = Workbooks(fs)
  8.    
  9.     On Error GoTo 0
  10.     If DataBook Is Nothing Then
  11.         Set DataBook = Workbooks.Open(fs)
  12.     End If
  13.    
  14.     With DataBook.Sheets("工作表1")
  15.         ar = .Range(.[A4], .[A3].End(xlDown).Offset(, 5))
  16.         With ComboBox1
  17.             .ColumnCount = 3
  18.             .List = ar
  19.             .ColumnWidths = "0,30,40"
  20.         End With
  21.     End With
  22.    
  23.     DataBook.Close 0
  24.     Application.ScreenUpdating = True
  25. End Sub
複製代碼

作者: c_c_lai    時間: 2016-12-3 17:33

回復 2# 周大偉
  1. Private Sub ComboBox1_DropButtonClick()
  2.     Dim DataBook As Workbook, fs As String
  3.    
  4.     Application.ScreenUpdating = False
  5.     On Error Resume Next
  6.     fs = ThisWorkbook.Path & "\資料庫.xlsm"
  7.     Set DataBook = Workbooks(fs)
  8.    
  9.     On Error GoTo 0
  10.     If DataBook Is Nothing Then
  11.         Set DataBook = Workbooks.Open(fs)
  12.     End If
  13.    
  14.     With DataBook
  15.         With Sheets("工作表1")
  16.             ar = .Range(.[A4], .[A3].End(xlDown).Offset(, 5))
  17.             With ComboBox1
  18.                 .ColumnCount = 3
  19.                 .List = ar
  20.                 .ColumnWidths = "0,30,40"
  21.             End With
  22.         End With
  23.    
  24.         .Close 0
  25.     End With
  26.     Application.ScreenUpdating = True
  27. End Sub
複製代碼
稍加整理版。
作者: 周大偉    時間: 2016-12-3 22:50

回復 6# c_c_lai
衷心感謝大大回應,祝願身體健康,快樂,謝謝。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)