小编N. *_*von的帖子

不活动后自动关闭工作簿

我创建了一个宏,在一段时间不活动后关闭WB.如果我手动打开文件,它工作得很完美,但如果我使用另一个WB中的另一个宏打开文件,它将不会在设置的不活动时间后自动关闭.我用来自动关闭它的代码是:

此工作簿模块:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    stop_Countdown
ThisWorkbook.Save
End Sub
Private Sub Workbook_Open()
    start_Countdown
    End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    stop_Countdown
    start_Countdown
    End Sub
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    stop_Countdown
    start_Countdown
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
  ByVal Target As Excel.Range)
    stop_Countdown
    start_Countdown
End Sub
Run Code Online (Sandbox Code Playgroud)

常规模块:

Option Explicit
Public Close_Time As Date
Sub start_Countdown()
    Close_Time = Now() + TimeValue("00:00:10")
    Application.OnTime Close_Time, "close_WB"
    End Sub
Sub stop_Countdown()
    Application.OnTime Close_Time, "close_WB", …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

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

从vba中的字符串的开头和结尾删除空格

我已经编写了这个函数来从字符串的开头和结尾删除空格,任何想法为什么它不起作用?

Public Function PrepareString(TextLine As String)

    Do While Left(TextLine, 1) = " " ' Delete any excess spaces
        TextLine = Right(TextLine, Len(TextLine) - 1)
    Loop
    Do While Right(TextLine, 1) = " " ' Delete any excess spaces
        TextLine = Left(TextLine, Len(TextLine) - 1)
    Loop

    PrepareString = TextLine

End Function
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

5
推荐指数
2
解决办法
4万
查看次数

继续用于不起作用

我正在尝试在Excel中使用Continue For语句,它会抛出编译错误:"预期表达式".这是代码:

For i = 3 To num
If Cells(i, 19) = "" Then
continue for
End If
Next i
Run Code Online (Sandbox Code Playgroud)

为什么会这样?PS:这是实际代码的简化版本.

excel vba excel-vba

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

将某个范围内的每个单元格乘以一个值

我希望一个范围内的每个单元格的值乘以一个特定的值(比方说4/7).我有这个代码,但我收到了"类型不匹配错误".

Range("B1:B4").Value = Range("B1:B4").Value * 4 / 7
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

excel vba excel-vba

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

Excel - 如果第二个字符是数字则返回值

我正在寻找一种方法,如果字符串中的第二个字符是数字,则返回零值。

例如,N227G6- 我想查找 2 作为第二个字符并返回值 0。

我尝试过:IF(ISNUMBER(LEFT(A1,2)),0,A1),但没有运气。

谢谢。

excel

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

确定列表中哪个值首先出现在字符串中的最快方法

我在工作表的列中有一个字符串列表(让我们说"A"),如下所示:

     A
BJS-LAX-GRU
CAN-ORD-MIA-BOG
NRT-LAX-JFK-LIM
Run Code Online (Sandbox Code Playgroud)

然后我在另一张表上有一个不同的列表(让我们说"B"),如下所示:

 A
LAX
MEX
MIA
JFK
Run Code Online (Sandbox Code Playgroud)

所以我想知道第一个列表的每个字符串中第一个列表的哪个值首先出现,然后我需要在字符串旁边写入该值.在这个例子中,我会得到:

     A              B
BJS-LAX-GRU        LAX
CAN-ORD-MIA-BOG    MIA
NRT-LAX-JFK-LIM    LAX
Run Code Online (Sandbox Code Playgroud)

我编写了以下代码,它完美地运行:

Dim aux As Integer
Dim cur As String

For j = 1 To Sheets("A").Cells(Rows.Count, "A").End(xlUp).Row
    aux = 100
    cur = ""
    For k = 1 To Sheets("B").Cells(Rows.Count, "A").End(xlUp).Row
        If InStr(Sheets("A").Cells(j, 1).Value, Sheets("B").Cells(k, 1).Value) < aux And InStr(Sheets("A").Cells(j, 1).Value, Sheets("B").Cells(k, 1).Value) <> 0 Then
            cur = Sheets("B").Cells(k, 1).Value
            aux = InStr(Sheets("A").Cells(j, 1).Value, cur)
        End If
    Next k
    Sheets("A").Cells(j, 2) = …
Run Code Online (Sandbox Code Playgroud)

string excel vba position excel-vba

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

如何使用 Excel VBA 比较时间

我的单元格中有一个日期值(假设A1),我想使用 VBA 检查该日期的时间是否大于或小于特定时间(假设 13 小时)。我怎样才能做到这一点?我试过:

if Cells(1,1)<TimeValue("13:00:00") then
'Something
end if
Run Code Online (Sandbox Code Playgroud)

但这没有用。

另外,如果我想获得时差,例如我想知道 13:00:00 和 13:10:00(即 10 分钟)之间的差异,我该怎么做?

excel vba

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

标签 统计

excel ×7

vba ×6

excel-vba ×5

position ×1

string ×1