У меня есть диаграмма данных со многими продуктами.Присвоение значения формулы ячейке
Я хочу фильтровать каждый тип продукта, рассчитать общее количество этого типа, а также количество продуктов внутри этого типа. И, наконец, введите значение этой функции в колонку в Листе 2.
Вот код. Колонка величины столбец U. Он получает ошибка 1004: Аргумент не обязательно, и это подчеркивает Set .... = FunctionR1C1 = .... часть
Function T_Quantity()
ActiveSheet.Range("U").Select
Total = FunctionR1C1 = "=subtotal(9,C[0])"
End Function
Function T_Count(ref_column)
ActiveSheet.Range("U").Select
Total = FunctionR1C1 = "=subtotal(2,C[0])"
End Function
Sub Total_Count()
Dim my_array() As String
Dim iLoop As Integer
Dim iCount As Integer
iCount = 1
ReDim my_array(3)
my_array(0) = "=M1747B"
my_array(1) = "=M1747C"
my_array(2) = "=M1766B"
For iLoop = LBound(my_array) To UBound(my_array)
ActiveSheet.Range("A:BB").Select
Selection.AutoFilter Field:=15, Criteria1:=my_array
Application.CutCopyMode = False
'Calculate the quantity and no of lot, put in colum A,B in sheet 2'
Set Worksheets("Sheet2").Cells(iCount, 1) = T_Quantity()
Set Worksheets("Sheet2").Cells(iCount, 2) = T_Count()
Application.CutCopyMode = False
iCount = iCount + 1
Next iLoop
End Sub
Вы не передаете какие-либо аргументы в функции; ваши функции не возвращают никаких значений и, таким образом, вы используете функцию, когда можете/должны использовать 'Sub'. Кроме того, 'Total = FunctionR1C1 =" = subtotal (9, C [0]) "является бессмысленным, это булево выражение (в лучшем случае), которое вернет только« True »или« False ». –
Да, я начинаю, поэтому мои знания немного ограничены: «> Но я подумал, что когда вам нужно вернуть значение, вам нужно использовать функцию insted sub. И еще одна вещь, я не уверен в назначении формула также, можете ли вы переписать fucntion для меня, я просто хочу назначить «значение» функции переменной или перейти к одной ячейке. Thanks –
Да и нет. Вы должны использовать функцию для * вычисления * и верните значение в подпрограмму, если вы просто манипулируете объектом рабочего листа - что вы делаете - это может быть частью существующей подпрограммы, или это может быть другая подпрограмма. Я постараюсь дать вам предложение. –