Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel中对一列中的数据执行计算并将结果移动到另一列。 这是我第一次使用VBA,所以我对Excel VBA的语法根本不好(我以前学过C++和Matlab)。_Vba_Excel_Vectorization - Fatal编程技术网

在Excel中对一列中的数据执行计算并将结果移动到另一列。 这是我第一次使用VBA,所以我对Excel VBA的语法根本不好(我以前学过C++和Matlab)。

在Excel中对一列中的数据执行计算并将结果移动到另一列。 这是我第一次使用VBA,所以我对Excel VBA的语法根本不好(我以前学过C++和Matlab)。,vba,excel,vectorization,Vba,Excel,Vectorization,我试图获取一列数据,做一些简单的计算(比如乘以3),然后把它放到一个新的列中 现在,我试图排序的数据中有重复项。例如,此列具有: 1 2 3 4 2 3 6 8 9 2 3 重复数字,有时是空白。现在我不太担心分类。我很难从一列中提取一组数组,然后在下一列中放置另一组数组。我该怎么做?下面的代码适用于字符串,如何调整?谢谢 以下是我的尝试: Sub unique() Dim arr As New Collection, a Dim a

我试图获取一列数据,做一些简单的计算(比如乘以3),然后把它放到一个新的列中

现在,我试图排序的数据中有重复项。例如,此列具有:

1  
2  
3  
4

2  
3  
6   
8    
9  
2  
3
重复数字,有时是空白。现在我不太担心分类。我很难从一列中提取一组数组,然后在下一列中放置另一组数组。我该怎么做?下面的代码适用于字符串,如何调整?谢谢

以下是我的尝试:

Sub unique()
    Dim arr As New Collection, a
    Dim aFirstArray() As Variant
    Dim i As Long

    aFirstArray() = Range("E:E")
    ' On Error Resume Next
    For Each a In aFirstArray
        arr.Add a, Str(a)
        'I tried changing Str(a) to Integer(a), apparently it doesn't work like this in Excel
    Next

    For i = 1 To arr.Count
        Cells(i, 3) = arr(i)
    Next

End Sub 

这可能与您的思维过程不完全一致,但我认为其本质在于使用一些不同的VBA工具。如果你有问题或者它不能解决你的问题,请告诉我

此代码忽略重复的单元格和空白单元格。如果你想把它们保留在你的列表中,它应该很容易调整

Sub unique()

Dim i As Integer
Dim dict As New Dictionary
Dim cel As Range
Dim rng As Range

Set rng = Range("A1:A12")

i = 1
For Each cel In rng
    If cel <> vbNullString Then
        If Not dict.Exists(cel.Value) Then
            dict.Add cel.Value, i
            i = i + 1
        End If
    End If
Next

For i = 1 To dict.Count - 1
    Cells(i, 3) = dict.Keys(i)
Next

End Sub
Sub-unique()
作为整数的Dim i
Dim dict作为新词典
暗淡的cel As范围
变暗rng As范围
设置rng=范围(“A1:A12”)
i=1
对于rng中的每个cel
如果cel vbNullString,则
如果不存在dict.Exists(cel.Value),则
添加单元格值,i
i=i+1
如果结束
如果结束
下一个
对于i=1,计算计数-1
单元(i,3)=指令键(i)
下一个
端接头

Hi,这些代码非常有效,我做了一些调整,这正是我需要的。现在,我试图弄清楚如何对这些数据列执行一些操作。例如,我对A列有各种随机顺序的操作(Op 100、Op 200、Op 300、100、300等),B列有这些操作的相应时间数据,我试图从本质上找出操作之间时间值的差异(比如Op 200-Op 200时间),我的问题是,在对对应行上的列B执行操作时,如何循环A列?因为您是StackOverflow新手,您可能不完全了解它的最佳工作方式—这对所有使用它的人来说都是最大的好处。既然你原来的问题得到了满意的回答,请把它记下来。这有助于未来搜索的用户对答案有信心。关于你在上述评论中提出的问题。请发布另一个问题。如果你想让我知道你是这么做的,我很乐意在发布时回答这个问题。这也有助于保持事情的具体和简单,因此在未来,用户可以找到特定Q的答案。