我正在尝试将VBA中的范围设置为我要查找的输入字符串的范围。完整的过程应该弹出一个对话框,以查找特定的字符串,找到该字符串,创建一个称为location的范围,将此范围设置为找到的字符串的范围,向右移动一定数量的列,并使用新的列值,在该范围内打印字符串。
现在的问题是由于某种原因,它没有将范围设置为找到的字符串的范围。
整个工作簿中只有一个字符串实例。
我对VBA还是比较陌生,所以有些命令我不知道或不了解它们如何工作。
Sub test()
Dim wb As Workbook
Set wb = ActiveWorkbook
Dim Inp As String
Dim Loc As Range
Dim Row As Integer
Dim Col As Integer
Dim NewLoc As Range
Dim Sh As Worksheet
Inp = InputBox("Scan ESD Tag")
For Each Sh In ThisWorkbook.Worksheets
With Sh.Columns("A")
Set Loc = .Find(What:=Inp)
End With
Next
Row = Loc.Row
Col = Loc.Column + (3 * 5)
Set NewLoc = Worksheets("Building 46").Cells(Row, Col)
NewLoc.Value = "Over Here"
Range("G2") = 6
End Sub
答案 0 :(得分:2)
您的问题可能是您的最终块应位于循环内,否则Loc可能为空(除非在最后一张纸上找到该术语),并且您的代码将出错。您还应该首先检查是否已找到它,以免发生此类错误。
var domains = ["domain1", "domain2", "domain3"];
var options = domains.map(function(domain) {
return {
text: domain,
value: domain
}
})
// without map
// var options = [];
// for (var i=0; i<domains.length; i++) {
// options.push({text: domains[i], value: domains[i]}
// }
var domainData = {
type: 'combo',
name: 'domain',
width: 200,
offsetLeft: 30,
label: 'Test label',
required: true,
options: options
};
console.log(domainData)