我有一个宏'Edit_Row',它将活动行中的值带入UserForm进行编辑。此宏由另一个宏调用,该宏通过在表的列B中选择适当行的单元格来触发:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Selection.Count = 1 Then
If Not Intersect(Target, Range("B3:B9999")) Is Nothing Then
Call Edit_Row
End If
End If
End Sub
这是按预期工作的,除了这个宏在表格上进行排序时也被激活的事实。我能做些什么来达到相同的结果(没有这些误报)?
答案 0 :(得分:1)
假设您的表格Range
包含第3行中的标题,请尝试以下操作:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim tbl As ListObject
Set tbl = Me.ListObjects("Table1") 'Modify using your table's Name
If Target.Cells.Count <> 1 Then Exit Sub
If Not Intersect(Target, tbl.DataBodyRange.Columns(2)) Is Nothing Then
Call Edit_Row
End If
End Sub
注意:如果您的表格不在A栏中开头,请将.Columns(2)
修改为.Columns(1)
。
这应该起作用的方式是检查Selection
是否属于表DataBodyRange
的一部分,var results = [];
var categories = [];
async.parallel({
results: function(callback) {
const query2 = client.query('SELECT * FROM entries ORDER BY id desc');
query2.on('row', (row) => {
results.push(row);
});
query2.on('end', () => {
callback(null, results);
})
},
categories: function(callback) {
const query3 = client.query('SELECT * FROM categories ORDER BY id desc');
// Stream results back one row at a time
query3.on('row', (row) => {
categories.push(row);
});
query3.on('end', () => {
callback(null, categories);
});
}
}, function(err, results) {
if (err) {
return res.send(err);
}
return res.render('index2.ejs',{"results" : results, "categories" :categories});
});
排除了标题行。