【问题标题】:Pasting value at the intersection of Row X and Column Y在 X 行和 Y 列的交叉点粘贴值
【发布时间】:2014-12-20 02:52:26
【问题描述】:

我需要记录学生每门学习科目的成绩。我已经有一个用于考试的自动校正器,每当这个校正器达到结果时,我需要它打开第二张表并将该成绩粘贴在学生 ID 号(A 列)和相应科目(第 1 行)之间的交叉点上。

我有大约 5,300 名学生和 17 个不同的科目。

实际上,我已经能够做到这一点,但我在该表的 10,000 多个单元格中的每个单元格中都使用 Excel 公式,根据我的标准“搜索”成绩。现在,你能想象这东西有多慢吗!

我的简洁问题是:有什么方法可以执行预期任务,但速度更快?

【问题讨论】:

  • 您能否详细说明它是如何获得成绩的?不同的文件?他们看起来怎么样?之后,我们可能想知道您熟悉哪些语言,代码,数据库?只是出类拔萃?之后,我们可以给你一个你可以使用的答案,否则我们只会发布你可能不知道的东西
  • 嗨,斯蒂芬。哇,好快啊!好吧,我熟悉 Excel VBA。实际上我使用 VBA 来创建这个“校正器”。由于所有考试都在 20 个问题的标准表格中回答,我有一个 VBA 表格,根据每个主题打开,我在其中纠正学生的 ID、日期,然后为每个错误回答的问题提供带有“x”的复选框。这样,除了计算最终成绩外,我还可以通过计算有多少学生回答错误来控制每个问题的“难度”。所有这些信息都记录在一张纸上,但是是逐行记录的。谢谢!!!
  • 请显示带有示例数据和您的代码 sn-p 的工作表数据结构,清楚地突出您的解决方案的问题部分,以便我们提供帮助。谢谢和问候,
  • 斯蒂芬,我已经尝试过索引匹配,但我无法将值“粘贴”到找到的单元格中。我曾考虑过使用 Find 方法,但这仍然让我感到困惑。再次感谢您的帮助。
  • 嗨,亚历克斯!我真的很害怕你们中的任何人会问我,rsrsrs...你能告诉我如何在这里发布吗?我可以编写一部分代码,但我不知道如何粘贴它的图像。谢谢。

标签: excel intersection paste


【解决方案1】:

您没有发布任何实际问题。我猜你想比你现在更快地执行你的标题中的任务。 我猜缓慢是由于您的摘要工作表有太多公式,每次更改都会重新计算。如果是这样,您的解决方案是:

  1. 找到放置成绩的正确单元格后,将其粘贴为值,而不是保留公式。下面的(分步)代码执行此操作。您必须在计算成绩后调用它。
  2. 禁用自动计算,仅在一个工作会话结束时启用(例如)。您可以通过菜单或 VBA 来完成。

Sub paste_grade(ByVal stud As Long, ByVal subj As Integer, ByVal gr As Double) Dim ws As Worksheet Set ws = ActiveWorkbook.Worksheets("Sheet1") Dim studrow As Long studrow = WorksheetFunction.Match(stud, ws.Range("A:A"), 0) Dim trg As Range Set trg = ws.Cells(studrow, subj + 1) trg.Value = gr End Sub

您必须稍微调整一下,例如,grsubj 作为字符串。在最后一种情况下,您将不得不在行1:1 上再次使用WorksheetFunction.Match。从您的帖子中,我猜您知道该怎么做。

【讨论】:

  • 嗨桑乔!非常感谢你的帮助!第二个选项对我来说非常完美!我真的不知道我可以“延迟”计算,而这正是我所需要的。我必须承认我仍然没有尝试你的第一个建议,但我会的!再次非常感谢,圣诞快乐!!!
  • 我很高兴看到这个问题得到解决。看起来桑乔的预测和征服能力比我强,虽然我不是一个优秀的家伙。至少我会投票!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多