Excel中VBA程序编写(紧急求助)谢谢大家!

Excel中VBA程序编写(紧急求助)谢谢大家!,第1张

Sub test()

Dim rng As Range

Set rng = Selection

Dim f As WorksheetFunction

Set f = WorksheetFunction

If fCountIf(rng, "<0") > 0 Then

If MsgBox("该单元格中的数值小于0,是否需要更正", vbOKCancel) = vbCancel Then Exit Sub

Dim cel As Range

For Each cel In rng

If celValue < 0 Then

If IsNumeric(celValue) Then

cel = celValue  10

End If

End If

Next

End If

End Sub

加个按钮引用上面宏

Sub TEST()

    '2a+3b+5c=20

    Dim arr(20, 2)

    Dim brr(2)

    Dim n

    n = 0

    minf = 20

    

    '进入循环,如果f=0结果存入arr,如果f<>0且f比minf更靠近0,将结果存入brr

    For a = 1 To 9

    For b = 1 To 6

    For c = 1 To 3

        f = 20 - 2  a - 3  b - 5  c

        If f = 0 Then

            arr(n, 0) = a

            arr(n, 1) = b

            arr(n, 2) = c

            n = n + 1

        ElseIf Abs(f) < Abs(minf) Then

            minf=f

            brr(0) = a

            brr(1) = b

            brr(2) = c

        End If

    Next c, b, a

    '如果有正整数解,写入单元格,如果没有 选择f最靠近0的写入单元格

    If n > 0 Then

        ss = Int((n + 1) / 2)

        Cells(1, 1) = arr(ss - 1, 0)

        Cells(1, 2) = arr(ss - 1, 1)

        Cells(1, 3) = arr(ss - 1, 2)

    Else

        MsgBox "没有正整数解"

        Cells(1, 1) = brr(0)

        Cells(1, 2) = brr(1)

        Cells(1, 3) = brr(2)

    End If

End Sub

这个代码虽然有点笨,但不论你有多少工作表,都可以一网打尽。

如果仍然觉得删除的力度不够,可以把1 to 10设置为1 to 20应该就没什么问题了

Sub ClearBlank()

ApplicationScreenUpdating = False

For t = 1 To 10

For sh = 1 To SheetsCount

Sheets(sh)Select

For i = 1 To ActiveSheet[h65536]End(xlUp)Row

If ActiveSheetRange("H" & i) = "" Then ActiveSheetRows(i)EntireRowDelete

Next

Next

Next

ApplicationScreenUpdating = True

End Sub

记得加分,总是0分,是不好的,要尊重劳动成果

以上就是关于Excel中VBA程序编写(紧急求助)谢谢大家!全部的内容,包括:Excel中VBA程序编写(紧急求助)谢谢大家!、如何用 VBA 写这个程序、VBA EXCEL 如何写以下的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9770224.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存