Vba计划平均

时间:2014-01-28 11:07:07

标签: excel-vba vba excel

我想在vba上寻求帮助,因为我从未工作过,也没有任何编程经验,需要它来分析大量数据。

我有3列,

  • A是时间
  • B是职位
  • C是脉冲(图像)

我真正想要的是在另一个单元格(如range.value)中获取使用0 pulse获得的位置的平均值,然后转到80 pulse并执行相同的操作转到下一个0并执行相同操作,依此类推......

是否有可能获得pulse 80在每种情况下发生的时间值?

谢谢! 中号

1 个答案:

答案 0 :(得分:0)

我不明白你的追求。我想我对数据有所了解,但还不足以猜测你想用它做什么。

然而,如果有人确实理解你所寻求的东西,我不相信他们会为你写一个宏来帮助他们。它可能会解决今天的问题,但你不会为明天的问题做好准备。

你必须学习VBA。在互联网上搜索“Excel VBA教程”。有许多;一些不好的东西。尝试一下,看看哪种适合您的学习方式。或者访问一个好的书店或图书馆,然后选择Excel BVA Primer。再多选择。图书馆的优势在于您可以在购买自己喜欢的图书馆之前先尝试一下。我喜欢在架子上放置参考书,这是我的方法。

掌握基础知识不会花费很长时间,学习投资将很快得到回报。我相信,如果不了解基础知识,您将无法理解在此处或其他地方找到的任何有用代码。

您必须自己设计程序。我从您的描述中猜测您的数据如下:

Time  Positions  Pulses
xxxx  yyyy         0
xxxx  yyyy        10
xxxx  yyyy        50
xxxx  yyyy        80
xxxx  yyyy         0
xxxx  yyyy        20
xxxx  yyyy        60
xxxx  yyyy        80
xxxx  yyyy         0
xxxx  yyyy        30
xxxx  yyyy        40
xxxx  yyyy        50
xxxx  yyyy        80

您没有告诉我们TimePosition列的格式或内容。我相信你有很多子表,第一行有0 Pulses,最后一行有80 pulses。您没有告诉我们每个子表是否有固定或可变数量的行。

如果每个子表有固定数量的行,那么简单的For-Next循环就足够了:

Const RowsPerSubTable As Long = 5
Dim RowStart As Long
Dim RowEnd As Long
Dim RowLast As Long

For RowStart = 2 To RowLast Step RowsPerSubTable
  RowEnd = RowStart + RowsPerSubTable - 1

  ' Process sub-table RowStart to RowEnd

Next

每个子表的行数可变,您必须搜索80 pulses行。这会有点复杂,但并不多。

以上是非常基本的VBA。任何教程或入门都会在早期阶段引入For-Next循环。

我希望上述内容使您确信您的要求并不难实现,只需稍加研究就可以自己完成大部分编程。

如果您遇到问题,请回复您的代码并解释为什么它无法正常工作。这是该网站专门研究的问题类型。