Код jQuery использует свой собственный метод data()
как такой идентификатор.
var id = $.data(object);
В за кулисном методе data
создает очень специальное поле в object
, называемом "jQuery" + now()
, помещает туда следующий id потока уникальных идентификаторов, таких как
id = elem[ expando ] = ++uuid;
Я бы предложил использовать тот же метод, что и Джон Ресиг, очевидно, знает все, что есть о JavaScript, и его метод основан на всех этих знаниях.
Я рекомендую разделять код и данные (жесткое кодирование - очень плохая практика). Поэтому плохая идея жестко кодировать группировку в массиве Arr=(Array("A", 1), Array("B",2), Array("C",3))
. Вместо этого вы хотели бы сохранить эти данные в (возможно, скрытом) листе.
Таким образом, ваш лист GroupLookup
будет выглядеть так
column A column B
A 1
B 2
C 3
Тогда вы можете использовать простую функцию VLOOKUP в вашем листе данных
column A column B
A =VLOOKUP(A:A,GroupLookup!A:B,2,FALSE)
B
C
A
...
Если вам нужно сделать это с VBA, все равно поместите свой GroupLookup
в лист, а не в код! Например, в вашу надстройку или куда-либо еще вы добавляете свой макрос, но следующий лист:
Итак, ваш лист GroupLookup
будет выглядеть так
column A column B
A 1
B 2
C 3
И ищите группы в этом лист с методом WorksheetFunction.VLookup
Option Explicit
Sub WriteGroups()
Dim GroupLookup As Worksheet 'define workbook/sheet where the group lookup table is
Set GroupLookup = ThisWorkbook.Worksheets("GroupLookup")
With Workbooks("YourWb").ActiveSheet 'this is the sheet where the group is written to
Dim LastRow As Long
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
Dim iRow As Long
For iRow = 1 To LastRow
On Error Resume Next
.Cells(iRow, "B").Value = Application.WorksheetFunction.Vlookup(.Cells(iRow, "A").Value, GroupLookup.Range("A:B"), 2, False)
If Err.Number <> 0 Then .Cells(iRow, "B").Value = CVErr(xlErrNA) 'write #NA if group not found
On Error Goto 0
Next iRow
End With
End Sub