列出调查问卷的最终得分

时间:2017-08-03 16:40:10

标签: excel vba excel-vba

提前感谢您对此的帮助。我到处搜索,但未能找到解决我问题的答案。

以下是背景资料:

我有一份包含15个问题的问卷,其中可能的答案是“Y”,“N”或“N / A”。对于每个问题,我已将“Y”分配给一个值,将“N”和“N / A”分配给零。

我需要一个宏,对于有问题的活动行,它将识别每个问题的标题(1-15),在同一文件中的不同工作表上查找每个标题,找到分配给它的编号,如果答案是“Y”或“N”(忽略“N / A”)并添加所有这些数字作为基本分数。

然后,作为第二步,宏将仅添加“Y”答案,并将其与最终分数的基本分数进行制表。

为了便于说明,我想说我有以下问题:

    Table    Chair     Lamp     Plant
     Y         Y         N        N/A

在另一个标签中,表格如下所示:

     Table    Chair     Lamp     Plant
       5        10       8         15

我需要一个宏来查看列标题以匹配它们,然后在分配给table,chair和lamp的值(忽略N / A以后的植物)中添加它们(总共23个)。然后只添加Y(总共15个),然后产生最终得分65(23个中的15个或65%)。

真的坚持这个...我不知道如何开始......真的很感激任何帮助。

非常感谢!!!!

玛塔

1 个答案:

答案 0 :(得分:0)

当你面前有一项重大任务时,你需要逐步进行分割。 Stack Overflow不是为您编写宏。

您要做的第一部分是将Active Row中的列标题与另一个工作表上的列标题匹配,对吧?我在下面发布的内容应该会在问题表中为您提供列标题并将其读取给您。尝试一下并进一步采取行动(如果需要,可以进行一些谷歌搜索)。当您遇到问题时,应该询问问题。

(将此代码放入工作簿中的新模块,并将其连接到问卷工作表上的按钮或其他内容)

Public Sub TallyQuestions()
    Dim questionSht As Worksheet
    Set questionSht = Sheets("Worksheet that has the questions you were talking about") 'replace name with name of questionSht

    Dim questionShtColHeaders As Range, cell As Range
    Set questionShtColHeaders = questionSht.Range("A1:A15")

    For Each cell In questionShtColHeaders
        MsgBox cell.Value
    Next cell
End Sub