Только для начала
Split создает массив.
var valueSet = Result.split("##");
Вам нужно проверить, есть ли в массиве хотя бы 4 элемента
if (valueSet.length <= 3) return
for (var i = 1; i < valueSet.length - 3; i++) {
нет необходимости создавать строку при объединении строки в любом случае
var code = valueSet[i - 1];
Нет необходимости использовать префикс javascript: и не нужно передавать код, если он совпадает с идентификатором:
td.innerHTML = '<input type="checkbox" name="pCheckBox" value="111" id ="' + code + '" onClick="decide(this.id)">';
Также выравнивание по умолчанию оставлено, и вы выравниваете центр по ячейке, чтобы избавиться от
// tr.setAttribute("align", "left");
Можете ли вы опубликовать больше кода и сказать, где все идет не так?