上面的"新增"你是要利用你上傳檔案的儲存格或者是利用一個按鈕來表示?兩者所寫的代碼會有些許的不同,但利用儲存格則會留下缺點(必須跳出那一格後再點選那個儲存格)
利用"儲存格"方式大約可以這麼寫,""你必須了解每一條式子的意義才行""
Private Sub Worksheet_SelectionChange(ByVal Target As Range) '此事件是當你選取某個儲存格後發生
If Target.Address = Cells(Target.Row, "A").Address Then'下面判斷是先在"A欄"尋找有"新增"字樣的儲存格
If Target = "新增" Then
msg = MsgBox("是否新增一筆資料", 4)
If msg = vbNo Then End '判斷若按下右按鈕後則離開程式
inp = InputBox("請輸入代號", "新增") '跳出視窗輸入公司代號
'以下是你要的目標代碼
'代碼(下次再演練)
'''''''''''''''''''''''''''''''''''''''''''''''''
End If
End If
End Sub
以上是部份代碼,你可以利用"F9"鍵來中斷第一個"IF",再利用"F8"鍵來逐行執行,你會很容易的了解程式的運作過程
以後的代碼我們再慢慢的來討論作者: oliwa 時間: 2015-3-30 13:50
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = Cells(Target.Row, "J").Address Then
If Target.Select Then
MsgBox "Hello !"
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = .Address Then
If Target.Select Then''''''''''這一個 IF...End If 是不必要的,只要第一個IF就可以達成你要的MsgBox的結果
MsgBox "Hello !"
End If
End If
End Sub
另Cells(Target.Row,1).Value 是可以讀取該儲存格的值,而且 .Value 是可以省略的作者: oliwa 時間: 2015-3-30 14:14
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
LastRow = Sheets("List").Cells(1, "A").End(xlDown).Row
If Target.Row < LastRow + 1 And Target.Row > 1 Then
If Target.Address = Cells(Target.Row, "J").Address Then
If Target.Select Then
Id_Comp = Cells(Target.Row, "A").Value
Id_Year = Cells(Target.Row, "D").Value
MsgBox Id_Comp & Id_Year
End If
End If
End If
End Sub
'資料轉寫
'Set 推銷費用位置 = Sheets("temp").Range("A:A").Find("*推銷費用*")
' If 推銷費用位置 Is Nothing Then
' 推銷費用 = 0
' Else
' 推銷費用 = 推銷費用位置.Offset(0, 1).Value
' End If