小编Big*_*Ben的帖子

有人可以帮助调试此Select Case

我已经来了一段时间,没有成功。

除了前两种情况和最后一种情况之外,它不会显示任何其他结果。

我尝试了小于或等于情况。

        Dim DayLeft As Long
        DaysLeft = Me.Days.Value

        Select Case DaysLeft
            Case Is = 0
                MsgBox "Deadline due today!"
            Case Is < 0
                MsgBox "Deadline expired!"
            Case 90 To 31
                MsgBox "First notice " & Me.Days& " days until deadline!"
            Case 30 To 11
                MsgBox "Deadline due soon! " & Me.Days & " days until deadline!"
            Case Is <= 10
                MsgBox "Warning! " & Me.Days& " days until deadline!"
        End Select
Run Code Online (Sandbox Code Playgroud)

vba

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

在VBA中的Subs(带有模块)中定义变量

想要在模块的一个位置定义引用变量(使用ActiveSheet.Cells [row,col]从工作表中的单元格调用值),以便在MS Excel文件中的多个子项中使用。该文件是一个动作跟踪器,subs使某些电子邮件自动执行(每个subs在给定条件下打开电子邮件)。每个子项的所有参考变量都相同-在一个地方进行定义将使电子表格的维护变得更加简单。

试图在第一个子控件上方定义变量,错误消息出现在第一个值上(如下所述)。我已经搜索了(a)全局变量和(b)如何在子对象上方进行定义。但是(a)所有变量都在同一模块中(b)错误消息,如下所述。我尚未找到有关使用ActiveSheet.Cells()引用定义变量的指南。

Option Explicit
'Defines variables for all macros:

'Defining Reference Variables
Today = ActiveSheet.Cells(2, 4)
ActionLogTitle = ActiveSheet.Cells(3, 3)
IPT_Leader = ActiveSheet.Cells(7, 7)
Run Code Online (Sandbox Code Playgroud)

(关于Today = ActiveSheet.Cells(2,4)错误,高亮显示为“ 2”)

编译错误:无效的外部过程

variables excel vba

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

VB6中的表单关闭事件?

只是想问,VB6 中是否有等效的 form_ opening 事件?(.bas)。我问的原因是,如果有打开的子窗口,我想防止首先关闭应用程序。

像这样的东西。

Private Sub MainForm_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

  If hasSubWindow Then
    MessageBox.Show("You currently have active sub-window(s)")
    e.Cancel = false
  End If

End Sub

Run Code Online (Sandbox Code Playgroud)

vb6

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

展平条目以列表映射到 Excel 中的两列对应关系

我在 Excel 中遇到一个经常遇到的问题,我真的很想自动化或半自动化。

我有条目 A_x 后跟一个非空的 B_y 列表。现在,我想将列表映射的条目展平为简单的两列列表,以便于处理,如下例所示。

事实上,我的示例比此处显示的要大得多,我想避免乏味的复制和粘贴黑客行为。

不使用 VBA 和简单的 Excel 函数可以实现这一点吗?

展平列表示例

excel list excel-formula

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

如果在该行中找不到字符","或Chr(44),则删除整行.重复所有行

我尝试写一些代码,将删除其中的人物""或CHR(44)不以任何该行中的细胞上发现的任何行.

我已经做到这一点,但我正在努力,因为代码只搜索C列","但我需要它来搜索整个当前行.

我该如何更新?

Sub DeleteRows()
' Defines variables
Dim Cell As Range, cRange As Range, LastRow As Long, x As Long


' Defines LastRow as the last row of data based on column C
LastRow = ActiveSheet.Cells(Rows.Count, "C").End(xlUp).row


' Sets check range as C1 to the last row of C
Set cRange = Range("C1:C" & LastRow)


' For each cell in the check range, working from the bottom upwards
For x = cRange.Cells.Count To 1 Step -1
    With cRange.Cells(x)
        ' …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba excel-formula

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

UsedRange 循环大于预期

我有一个 22 行的表,我只想通过 B 列。由于某种原因,我的循环超出了 22 行并达到了 259。

代码

Debug.Print "Starting..."
Dim tempRange As Range
Set tempRange = Sheet18.UsedRange.Columns("B")

Dim i As Integer
i = 0
For Each Cell In tempRange.Cells
    i = i + 1
Next Cell
Debug.Print "Count: " & i
Run Code Online (Sandbox Code Playgroud)

中间窗口

Starting...
Count: 259
Run Code Online (Sandbox Code Playgroud)

显示有 22 行的 Sheet18 的屏幕截图

22 行表

屏幕截图显示了 22 行的表引用

显示 22 行的表参考

excel vba

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

使用 VBA 在 Excel 范围内查找第一个公式的最快方法是什么?

有没有比使用 for 循环在单元格中查找公式的第一个实例更快的方法?

For Each dc In .Worksheets("testWS").Range(searchRange)
    If dc.hasFormula() = True Then
        formulaRow = Split(dc.Address, "$")(2)
        formula = dc.formula
        Exit For
    End If
Next
Run Code Online (Sandbox Code Playgroud)

excel vba

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

VBA 从形状运行宏和屏幕提示(或工具提示)。我无法获取我发现有效的代码

我使用自定义按钮(形状)作为按钮,我想使用我找到的这段代码,但我无法让它正常工作,我不知道为什么。目标是向形状和宏添加屏幕提示。通常这是行不通的。只有其中之一有效,但不能同时有效。

--- 请不要要求我插入 Activex 控件。我知道鼠标移动事件。我确实尝试过这种方法,它有效,但它非常故障......

如果有人可以帮助我理解我做错了什么,那么附加的方法将是完美的。我在论坛中找到了这个方法,并且给作者“Jaafar Tribak”发了消息,但我还没有收到他的回复。所以我希望其他比我更了解编码的人能够真正解释为什么我无法让它工作。这是我从中获取代码的地方。https://www.mrexcel.com/board/threads/tooltip-and-macro-on-a-shape-in​​-excel-vba.442147/page-3#post-5524771

我理解它是这样操作的:通常,如果将屏幕提示添加到带有宏的形状中,则屏幕提示将起作用,但宏不会,因为超链接优先于单击事件,因此宏永远不会触发。此代码将屏幕提示置于命令栏事件中,并允许单击按钮来触发宏。使用我的代码,屏幕提示确实显示,但按钮单击事件不会触发,或者无论如何也不会启动我的宏。

这是代码,所有这些都与工作簿模块有关。

    Option Explicit
    Private WithEvents cmb As CommandBars
    
    Private Type POINTAPI
        x As Long
        y As Long
    End Type
    
        #If VBA7 Then
        Private Declare PtrSafe Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
        Private Declare PtrSafe Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    #Else
        Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
        Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer …
Run Code Online (Sandbox Code Playgroud)

excel vba tooltip hyperlink

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

如何使用 VLOOKUP 在不使用 VBA 的情况下连接同一数组“X”次

我正在尝试创建一个重复数字序列“X”次的数组。这是我到目前为止所拥有的。(避免 VBA)。

=VSTACK(SEQUENCE(C1,1), SEQUENCE(C1,1))

我得到:

A栏 乙(次) C(行)
1 2 3
2
3
1
2
3

但我如何SEQUENCE(C1,1) 在里面重复“X”次VSTACK根据 B2 内部的内容

我想过 REPT,但这只适用于字符串

谢谢你!

excel excel-formula

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

跨多列的 Pandas 平均值

在熊猫中,我想计算参加每项运动的人的平均年龄和体重。我知道我可以循环,但想知道最有效的方法是什么。

df = pd.DataFrame([
    [0, 1, 0, 30, 150],
    [1, 1, 1, 25, 200],
    [1, 0, 0, 20, 175]
], columns=[
    "Plays Basketball",
    "Plays Soccer",
    "Plays Football",
    "Age",
    "Weight"
])
Run Code Online (Sandbox Code Playgroud)
打篮球 踢足球 踢足球 年龄 重量
0 1 0 30 150
1 1 1 25 200
1 0 0 20 175

我尝试过groupby,但它为每种可能的运动组合创建了一个组。我只需要每项运动的平均年龄和体重。

结果应该是:

年龄 重量
打篮球 22.5 187.5
踢足球 27.5 175.0
踢足球 25.0 200.0

python pandas

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

标签 统计

excel ×7

vba ×6

excel-formula ×3

excel-vba ×1

hyperlink ×1

list ×1

pandas ×1

python ×1

tooltip ×1

variables ×1

vb6 ×1