Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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_Sorting - Fatal编程技术网

Excel 在VBA中查找列并排序

Excel 在VBA中查找列并排序,excel,vba,sorting,Excel,Vba,Sorting,大家好,我正在尝试创建一个宏,使它更容易排序从机器人导出的数据 问题在于,由于机器人进行测试的方式,立柱可能会改变位置 许多列都是无用的,因此我制作了一个宏来隐藏未使用的列,现在我想添加一个宏,以升序对其余4列进行排序,但我就是无法破解它 到目前为止我有 Dim c As Range For Each c In Range("A1:BR1").Cells If c.Value = "Plate Name (barcode)" Or c.Value = "Measurement Date

大家好,我正在尝试创建一个宏,使它更容易排序从机器人导出的数据

问题在于,由于机器人进行测试的方式,立柱可能会改变位置

许多列都是无用的,因此我制作了一个宏来隐藏未使用的列,现在我想添加一个宏,以升序对其余4列进行排序,但我就是无法破解它

到目前为止我有

Dim c As Range

For Each c In Range("A1:BR1").Cells
    If c.Value = "Plate Name (barcode)" Or c.Value = "Measurement Date" Or c.Value = "Measurement profile" Or c.Value = "pH" Or c.Value = "Count" Or c.Value <= 30 Then
    c.EntireColumn.Hidden = False
    Else: c.EntireColumn.Hidden = True
    End If
    Next c
End Sub
尺寸c作为范围
对于范围内的每个c(“A1:BR1”)。单元格

如果c.Value=“车牌名称(条形码)”或c.Value=“测量日期”或c.Value=“测量档案”或c.Value=“pH”或c.Value=“计数”或c.Value请查看类似的内容是否适用于您

代码假定数据集之间没有空白列

Sub SortColumns()
Dim i As Long, j As Long, lc As Long
Dim vKeys()
lc = ActiveSheet.UsedRange.Columns.Count
For i = lc To 1 Step -1
    If Columns(i).Hidden = False Then
        j = j + 1
        ReDim Preserve vKeys(1 To j)
        vKeys(j) = Cells(2, i).Address
    End If
Next i
'vKeys(4) --> First visible column from left
'vKeys(3) --> Second visible column from left
'vKeys(2) --> Third visible column from left
'vKeys(1) --> Fourth visible column from left
Range("A1").CurrentRegion.Sort key1:=Range(vKeys(4)), order1:=xlAscending, key2:=Range(vKeys(3)), order2:=xlAscending, key3:=Range(vKeys(2)), order3:=xlAscending, Header:=xlYes
Range("A1").CurrentRegion.Sort key1:=Range(vKeys(1)), order1:=xlAscending, Header:=xlYes
End Sub

你指的是什么类型的“机器人”?(这是一个非常通用的术语。)此外,您是否能够手动将其排序?(没有VBA?)选择案例c。值的语法更容易阅读,如何排序?Asc?Desc?是的-我可以手动对数据进行排序机器人基本上读取了大量最终产品的粘度和pH值,但它抛出了太多我们不需要的列-它将所有内容导出到excel,但有许多我们隐藏的无用列,如导电率/等待时间/校正系数等。抱歉,QHarr排序升序或降序我需要在“计数”列中搜索“粘度”,然后从中读取读数,但如果数据已排序,我可以滚动到您尝试进行排序的代码所在的位置?感谢在我的宏末尾添加了大量工作@仓鼠244应该是这样的。很高兴它能按预期工作。请花一分钟接受答案,将您的问题标记为已解决。