我一直试图让这个工作,但我不能到目前为止,搜索后我也无法在网上找到解决方案,所以在这里。
我正在使用3张纸。
“wsPunting”(值变化的那个)
“wsDetail”(表格中包含所有内容的完整数据)
“wsData”(我存储我用宏抓取的某些数据的工作表)
现在,我正在尝试做的是,当wsPunting中的单元格B2中的值发生更改时(B2是使用宏进行的数据验证,不确定这是否是有价值的信息,但最好将其放在此处case),我在wsDetail中过滤我的数据,抓取列“O3:O”,删除重复项,并将其分配到wsPunting中单元格B5中的数据验证。
当我输入了<20个值时,我已经开始工作了。现在,当我粘贴我将要在wsDetail中使用的实际数据时,我不断在相交上获得“类型不匹配”。
我已经尝试过一些事情,但我可能会修复它,但我似乎无法找到它。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
On Error GoTo Booboo
Dim rngFSU As Range
Dim vFSU As Range
Dim wsPunting As Worksheet, wsData As Worksheet, wsDetail As Worksheet
Set wsPunting = ActiveWorkbook.Sheets("Puntingsblad")
Set wsData = ActiveWorkbook.Sheets("Data")
Set wsDetail = ActiveWorkbook.Sheets("Detail")
Set rngFSU = wsPunting.Range("$B$2")
Set vFSU = wsPunting.Range(Target.Address)
'The next line is where it keep dropping the error
If Not Intersect(rngFSU, vFSU) Then
wsDetail.Range("A2", wsDetail.Range("A3").SpecialCells(xlCellTypeLastCell)).AutoFilter Field:=1, Criteria1:=Range("B2").Value
wsDetail.Range("O3", wsDetail.Range("O3").SpecialCells(xlCellTypeLastCell)).Copy
wsData.Range("B2").PasteSpecial xlPasteValues
wsData.Range("B2", wsData.Range("B1").End(xlDown)).RemoveDuplicates Columns:=Array(1)
With wsPunting.Range("B5").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="=Data!" & wsData.Range("B2", wsData.Range("B1").End(xlDown)).Address
.IgnoreBlank = True
End With
wsDetail.Range("A2", wsDetail.Range("A3").SpecialCells(xlCellTypeLastCell)).AutoFilter Field:=1
End If
Booboo:
MsgBox err.Description
End Sub
这实际上是我的最后一招,请注意我通常会尝试自行修复以便更快地学习。但是我已经被困在这个问题已经很久了,我就不能再这么做了。
提前干杯。
答案 0 :(得分:1)
const submitHandler = (e) => { const query = $('#query').val() || e.target.value const url = 'https://api.fashion.net/colors/' // shorthand GET request $.getJSON(url, (json, textStatus) => { // ... do stuff with response ... }) .done(() => { // ... do stuff when done ... }) .fail(err => { console.log('error: ', err); }) } // handle user query on 'search' click $('#submit').click(submitHandler) // handle user query on 'enter' pressed // NOTE: invalidates default action $('#query').keyDown((e) => { if (e.keyCode === 13) { // kill browser default e.preventDefault() // run submit handler submitHandler(e) // exit return } })
If Not Intersect(rngFSU, vFSU) Then
是Intersect(rngFSU, vFSU)
类型的对象,您试图将其转换为布尔值。
这会导致错误。我知道您要检查是否没有交叉点,在这种情况下,Range
返回的范围是Intersect
。所以试试这个:
Nothing