小编Mar*_*oy2的帖子

如何找到Qt的版本?

我怎么知道我使用的是哪个版本的Qt?当我打开Qt Creator时,它显示"欢迎来到Qt Creator 2.3".但是,在构建设置中,它显示Qt Version 4.7.1.

qt4 pyqt qt-creator qtcpsocket qtcore

24
推荐指数
6
解决办法
5万
查看次数

Excel VBA通​​过连续单击单元格/文本按多个条件排序

我正在尝试根据点击的列标题对表中的excel列进行排序.到目前为止,我有下面的代码,它工作正常.我单击标题,表格按我单击的列标题排序.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    If Not Intersect(ActiveCell, Range("active[#Headers]")) Is Nothing Then
        Dim KeyRange As Range
        Set KeyRange = Range(Target.Address)

        SortOrder = xlAscending

        If Target.Value = "price" Then
            SortOrder = xlDescending
        End If

        If Target.Value = "profit" Then
            SortOrder = xlDescending
        End If

        Range("active").Sort Key1:=KeyRange, Header:=xlYes, Order1:=SortOrder
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

当我单击不同的标题单元格时,将取消先前的排序并设置new.这就是我想改变的地方.我想添加二级排序标准,而不是更改主要标准.

我想按多个标准排序,只需连续点击不同的标题单元格即可.例如,首先按价格排序,然后按截止日期排序,然后按其他方式排序.这种组合可能不同,所以我不能真正使用vba排序标准1,2,3并在一次通过中进行排序.

为了清除排序顺序,我使用这个:

ActiveWorkbook.Worksheets("active").ListObjects("active").Sort.SortFields. _
    Clear
Run Code Online (Sandbox Code Playgroud)

你有什么想法,如何实现这个目标?

请不要问我为什么我按照它的编写方式编写代码.我不知道.不幸的是,我不是编码员,我粗略地理解代码是如何工作的,但我没有更深入的知识.我只是通过搜索然后尝试它是如何工作的(或更常见的是它不起作用)将来自不同来源的代码放在一起.

sorting excel vba

9
推荐指数
1
解决办法
223
查看次数

单独导出VBA程序(子/函数)

在该项目中,我正在处理的所有代码都位于模块中,每个模块都有不同数量的过程。我正在尝试将 VBA 代码过程一一导出到以其各自模块命名的文件夹中。我已经有了导出整个模块的代码,但我喜欢这个挑战,并且以这种方式跟踪更改更有趣!

下面的导出代码适用于除自身之外的每个模块,因为我检查函数/子函数的开始和结束的方式。这实际上是一个循环问题,因为它认为检查中的短语是新子句的开始!

如果有人有一个更有创意的解决方案来标记在这里工作的函数或子函数的开始和结束,或者有办法调整我的,我将非常感激!

Sub ExportVBCode2()

    'NOTE: Globals will be included with the first procedure exported, not necessarily the procedure(s) they're used in

    Dim directory As String
    directory = "C:\Users\Public\Documents\VBA Exports" & "\"

    Dim fso As Object
    Set fso = CreateObject("scripting.filesystemobject")

'    If fso.FolderExists(Left(directory, Len(directory) - 1)) Then
'        fso.deletefolder Left(directory, Len(directory) - 1)
'    End If

    If Len(Dir(directory, vbDirectory)) = 0 Then
        MkDir directory
    End If

    Dim VBComponent As Object
    Dim Fileout As Object
    Dim i As …
Run Code Online (Sandbox Code Playgroud)

excel vba export

5
推荐指数
1
解决办法
755
查看次数

Excel VBA 将项目添加到组合框而没有重复项目

我想将下面的项目添加到组合框,但如果有一个项目的重复项,那么应该只添加一个。

   A
1 john  
2 john
3 marry
4 marry
5 john
6 lisa
7 frank
8 marry
Run Code Online (Sandbox Code Playgroud)

我想组合框的结果是johnmarrylisafrank(而不是八个项目四个独特的项目)。


我的代码是:

Private Sub Workbook_Open()

    Application.EnableEvents = False

    With Sheet2.ComboBox1

        For Each Cell In Sheet1.Range("A1:A6348")
            If Not ComboBox1.exists(Cell.Value) Then
                .AddItem  Cell.Value
            End If
        Next

    End With

End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba

3
推荐指数
1
解决办法
1万
查看次数

VBA EXCEL基于单元格值隐藏行非常慢

我下面的代码根据相应的单元格值(如果为0则隐藏)来隐藏/取消隐藏整个行,并且工作正常。

这是材料清单,并且有一个“完成”按钮。在列表的最后,您按下按钮,任何数量= 0的项目都应隐藏此相关行。

工作正常。但是问题在于它非常慢。正如您所看到的,它是400多个行,而从字面上我可以看到这些行消失了。它每秒处理大约20行,这使得在20秒内完成列表。并且列表每隔几个月就会翻一番。

因此,问题是-是否有其他方法可以立即或至少比当前速度更快地隐藏相关行?

非常感谢!

隐藏:

Public Sub HideRows()
Dim cell As Range
    For Each cell In ActiveSheet.Range("H18:H469")
    cell.EntireRow.Hidden = (cell.Value = 0 And cell.Value <> "")
Next cell
End Sub
Run Code Online (Sandbox Code Playgroud)

取消隐藏:

Public Sub UnhideRows()
Dim cell As Range
    For Each cell In ActiveSheet.Range("H18:H469")
    If (cell.Value = 0 And cell.Value <> "") Then cell.EntireRow.Hidden = False
    Next cell
End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba row hide

3
推荐指数
1
解决办法
307
查看次数

在VBA中将工作表作为变量从一个子过程传递到另一个子过程

这是我在stackoverflow上的第一篇文章.我在Excel VBA中有两个子过程.第一个名为Sub IAR_part_2(),用于将两个工作表(按索引位置)分配给名为sheetname1和sheetname2的两个变量.在分配变量之后,我试图将它们传递给我的第二个子过程,称为IAR_macro,以进行处理.两张纸相互依赖,因此纸张4和8通过IAR宏,第5页和第9页,第6页和第10页等等.我的问题是我无法弄清楚如何将工作表名称变量从IAR_part_2传递到IAR_macro.我究竟做错了什么?

Sub IAR_part_2()

    sheetname1 = Worksheets(4)
    sheetname2 = Worksheets(8)

    Call IAR_macro

End Sub

Sub IAR_macro(sheetname1 As Worksheet, sheetname2 As Worksheet)

    Dim h As Long
    Dim i As Long
    Dim l As Long
    Dim j As Long
    Dim k As Long
    Dim lr As Long

    Worksheets(sheetname1).Activate

    ' Find the number of the last cell with data in column A and subtract 1 to populate variable i
    On Error GoTo Canceled
    i = (Range("B1").End(xlDown).Row) - 1

    'Switch over …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

2
推荐指数
1
解决办法
439
查看次数

标签 统计

excel ×5

vba ×5

excel-vba ×1

export ×1

hide ×1

pyqt ×1

qt-creator ×1

qt4 ×1

qtcore ×1

qtcpsocket ×1

row ×1

sorting ×1