Мне сказали, что мой код контрафакта - плохая практика, и я боялся, что он может вылететь. У меня есть более 200 строк кода, как это. Нужно ли добавлять переменные или циклы, чтобы сделать его лучше? У других линий есть другие критерии и больше критериев, так что это довольно сложно. Мои данные содержат до 100 000 строк, и все работает нормально ... для завершения требуется всего несколько секунд. У меня есть куча другого кода, делающего другие вещи, но это единственная часть, которую мне сказали, это плохая практика. Я новичок без переменного опыта. Любые предложения высоко ценится, спасибо Cobber.
'Counts the data on sheet 2 and populates on sheet 1
'counts total, pass and fail
Sheets(1).Range("D5").Value = Application.WorksheetFunction.CountIfs(Range("C7:C10000"), "RDG1", Range("G7:G10000"), "Sewer Works")
'counts pass
Sheets(1).Range("E5").Value = Application.WorksheetFunction.CountIfs(Range("C7:C10000"), "RDG1", Range("G7:G10000"), "Sewer Works", Range("I7:I10000"), "PASS")
'counts fail
Sheets(1).Range("F5").Value = Application.WorksheetFunction.CountIfs(Range("C7:C10000"), "RDG1", Range("G7:G10000"), "Sewer Works", Range("I7:I10000"), "FAIL")
'seperate areas
Sheets(1).Range("D6").Value = Application.WorksheetFunction.CountIfs(Range("C7:C10000"), "TYH2", Range("G7:G10000"), "Sewer Works")
Sheets(1).Range("E6").Value = Application.WorksheetFunction.CountIfs(Range("C7:C10000"), "TYH2", Range("G7:G10000"), "Sewer Works", Range("I7:I10000"), "PASS")
Sheets(1).Range("F6").Value = Application.WorksheetFunction.CountIfs(Range("C7:C10000"), "TYH2", Range("G7:G10000"), "Sewer Works", Range("I7:I10000"), "FAIL")
Sheets(1).Range("D7").Value = Application.WorksheetFunction.CountIfs(Range("C7:C10000"), "UJM3", Range("G7:G10000"), "Sewer Works")
Sheets(1).Range("E7").Value = Application.WorksheetFunction.CountIfs(Range("C7:C10000"), "UJM3", Range("G7:G10000"), "Sewer Works", Range("I7:I10000"), "PASS")
Sheets(1).Range("F7").Value = Application.WorksheetFunction.CountIfs(Range("C7:C10000"), "UJM3", Range("G7:G10000"), "Sewer Works", Range("I7:I10000"), "FAIL")
Sheets(1).Range("D8").Value = Application.WorksheetFunction.CountIfs(Range("C7:C10000"), "OPL4", Range("G7:G10000"), "Sewer Works")
Sheets(1).Range("E8").Value = Application.WorksheetFunction.CountIfs(Range("C7:C10000"), "OPL4", Range("G7:G10000"), "Sewer Works", Range("I7:I10000"), "PASS")
Sheets(1).Range("F8").Value = Application.WorksheetFunction.CountIfs(Range("C7:C10000"), "OPL4", Range("G7:G10000"), "Sewer Works", Range("I7:I10000"), "FAIL")
Sheets(1).Range("D9").Value = Application.WorksheetFunction.CountIfs(Range("C7:C10000"), "HUJ5", Range("G7:G10000"), "Sewer Works")
Sheets(1).Range("E9").Value = Application.WorksheetFunction.CountIfs(Range("C7:C10000"), "HUJ5", Range("G7:G10000"), "Sewer Works", Range("I7:I10000"), "PASS")
Sheets(1).Range("F9").Value = Application.WorksheetFunction.CountIfs(Range("C7:C10000"), "HUJ5", Range("G7:G10000"), "Sewer Works", Range("I7:I10000"), "FAIL")
'calculates percent score after the columns are populated on sheet 1
Range("G5").Select
ActiveCell.FormulaR1C1 = "=RC[-2]/RC[-3]"
Range("G6").Select
ActiveCell.FormulaR1C1 = "=RC[-2]/RC[-3]"
Range("G7").Select
ActiveCell.FormulaR1C1 = "=RC[-2]/RC[-3]"
Range("G8").Select
ActiveCell.FormulaR1C1 = "=RC[-2]/RC[-3]"
Range("G9").Select
ActiveCell.FormulaR1C1 = "=RC[-2]/RC[-3]"
Range("G10").Select
ActiveCell.FormulaR1C1 = "=RC[-2]/RC[-3]"
Range("G11").Select
ActiveCell.FormulaR1C1 = "=RC[-2]/RC[-3]"
Range("G12").Select
ActiveCell.FormulaR1C1 = "=RC[-2]/RC[-3]"
Range("G13").Select
ActiveCell.FormulaR1C1 = "=RC[-2]/RC[-3]"
Range("G14").Select
ActiveCell.FormulaR1C1 = "=RC[-2]/RC[-3]"