excel - Worksheet_Change - 捕获对多行中粘贴值的更改
问题描述
我在工作表更改上有代码,可以将输入值保存到数据库中。但是,如果用户粘贴到多行中,则只会将一行中的数据保存到数据库中。我怎样才能得到这个来保存所有行的数据?
代码示例:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrorHandler
'Exit if selected row is the header row
If (Target.Row >= 7) Then
If Not (Intersect(Target, Columns(Sheets("PRs RFQs POs").Range("Table_v_Sourcing_Report[Comments]").Column)) Is Nothing) Then
Application.EnableEvents = False
'Define variables
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sConnString As String
Dim CommentType As String
Dim PO, PR, Num As String
Dim POLine, PRLine, Line As Double
sConnString = "database connection stuff"
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open sConnString
Num = Cells(Target.Row, Range("Table_v_Sourcing_Report[Req Num]").Column).Value
Line = Cells(Target.Row, Range("Table_v_Sourcing_Report[Req Line]").Column).Value
rs.Open "select * from t_sourcing_comments where type = 'PR' and num = " & Num & " and line = " & Line, cn, adOpenKeyset, adLockOptimistic
If rs.EOF Then
rs.AddNew
rs("Num").Value = Num
rs("Line").Value = Line
End If
rs("Comment").Value = Cells(Target.Row, Range("Table_v_Sourcing_Report[Comments]").Column).Value
rs.Update
End If
End If
GoTo CleanUp 'skip error handler
ErrorHandler:
MsgBox "Failed to save comment(s):" & Err.Description
CleanUp:
On Error Resume Next
Application.EnableEvents = True
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub```
解决方案
推荐阅读
- python - Python:下载基于名称和日期的 s3 文件
- javascript - 使用 onclick 功能忽略阻止默认值
- javascript - 高阶函数中count++和count+1的区别
- python - 使用 Pandas 读取变量列标题时出现问题
- ios - 如何在 UICollectionView 的单元格上使用 TouchDragEnter?
- ios - 在 Objective-C 中设置一个类的值的问题
- javascript - 将javascript对象键与输入值进行比较
- c# - Set style with eventsetter in resources programmatically
- youtube - 从 Youtube 直播视频中获取当前延迟
- django - apache + mod_wsgi restart 保持活动任务