我有一个excel文件,其中有几个表格,其中包含"Last change:"字段.如果对该表进行任何更改,该字段应更新为当前日期.
我实现了一个宏,它做了它应该做的,但不幸的是它禁用了"反向"(Strg + Z)功能,这是非常烦人的.因此,我编辑了宏,以便反向功能再次起作用.我的宏现在看起来像这样:
Option Explicit
Public Merker
Private Sub Worksheet_Change(ByVal Target As Range)
If Not ThisWorkbook.ReadOnly Then
Application.OnUndo "Rev. Change", "Wiederherstellen"
Merker = Cells(3, 2)
Cells(3, 2) = Date
End If
End Sub
Sub Wiederherstellen()
Cells(3, 2) = Merker
End Sub
Run Code Online (Sandbox Code Playgroud)
当我应用此宏时,Excel会在我对文档进行更改时崩溃.我的代码中有无效的东西吗?我真的很想知道,因为没有错误消息或错误的行为,只有应用程序崩溃.每次都会可靠地发生此崩溃.
谢谢你的帮助!
我正在使用microsoft visual basic 6.5和Excel
TxtMMM是String prompt keyyed in by user. In this case i hardcoded it as an example
but it(TxtMMM)可以是"Jan","JAN","jAn"或"jan"等中的任何一个
我的问题是,我如何写入条件来检查TxtMMM,在检查时忽略区分大小写?
例如,如果用户输入 TxtMMM
然后它会回来 "01"
sub casesense()
Dim TxtMMM as String
Dim sTxtMMM as String
TxtMMM = "Jan"
If TxtMMM = "JAN" Then
sTxtMMM = "01"
csd = 1
ElseIf TxtMMM = "FEB" Then
sTxtMMM = "02"
csd = 1
.....
End If
End sub
Run Code Online (Sandbox Code Playgroud) 与 Microsoft 提供的标准 VBA 编辑器相比,我更喜欢使用 Eclipse,并且想知道是否可以将 Eclipse 设置为默认编辑器?
给定两列,A和B如下:
| A | B
-------------
1 | 6 | 2
2 | 4 | 5
3 | 8 | 2
Run Code Online (Sandbox Code Playgroud)
我可以编写一个excel公式,=MAX(A1+B1,A2+B2,A3+B3)无需在公式中键入每一行即可实现吗?
正如标题所说,它很简单.我需要能够使用" x .xlsx"而不是"*xy.xlsx" 的文件夹打开文件.
只是不知道该怎么做.我可以获取文件目录,然后使用星号选择所有带有"x"的文件.但我有文件,我不想打开唯一的变化是在文件名的末尾,他们有少量的文本("y").
这就是我到目前为止所拥有的.我会加什么
Workbooks.Open (Dir & FileNameStart & "*")
Run Code Online (Sandbox Code Playgroud)
希望这很清楚.
我搜索了很多,现在我将尽我所能解释:
我有很多床单.在第一个(但仅作为示例)中,我将在A1中包含一个列表,其中包含确切的工作表名称列表.
在A2中我想使用A1中命名的工作表,如下所示:
= 'A1'!C5
对我而言,这意味着:单元格A2等于A1中命名的工作表中包含的单元格C5.可以这样做吗?非常感谢你的帮助!
(ps我不想使用VBA)
里卡多
我有一个范围
Set rng = Range("B5:H20")
Run Code Online (Sandbox Code Playgroud)
我想创建一个包含除第一行之外的所有单元格的子范围rng.有什么好办法呢?
Set subRng = 'Range("B6:H20")
Run Code Online (Sandbox Code Playgroud) 我在使If NOT Like代码工作时遇到了一些问题.
下面是编码的一部分.似乎编码正在带来第二个记录,在该字段中有铁路,但没有一个记录在那之前或之后有铁路.
实际上,它应该在该领域的任何地方带来不包含铁路的记录,但它也不会这样做.任何反馈都表示赞赏.
Set rngData = Intersect(wsData.UsedRange, wsData.Range("A:K"))
j = 1
rngData.Rows(1).Copy Destination:=wsGalreq.Cells(j, 1)
For i = 2 To rngData.Rows.Count
If Not rngData.Cells(i, 11).Value = "SUPPLIER A" And rngData.Cells(i, 6).Value Like "*RAIL*" Then
j = j + 1
rngData.Rows(i).Copy Destination:=wsGalreq.Cells(j, 1)
End If
Next
Run Code Online (Sandbox Code Playgroud) 因此,我有一个“主”Excel 文件,需要用目录中的 Excel 文件中的数据填充该文件。我只需要访问每个文件并从每个工作簿的第二张表中复制一行并将其粘贴到我的主文件中,而无需打开 Excel 文件。
我不是这方面的专家,但我可以处理一些中间宏。我需要的最重要的是能够在不打开文件的情况下一一访问它们。我真的需要这个,所以非常感谢任何帮助!谢谢!
编辑...
所以我一直在尝试使用 dir 函数通过循环运行目录,但我不知道如何从第一个文件继续。我在网站上看到了这个,但对我来说,循环不会停止,它只访问目录中的第一个文件。
Folder = "\\Drcs8570168\shasad\Test"
wbname = Dir(Folder & "\" & "*.xls")
Do While wbname <> ""
i = i + 1
ReDim Preserve wblist(1 To i)
wblist(i) = wbname
wbname = Dir(FolderName & "\" & "*.xls")
Run Code Online (Sandbox Code Playgroud)
wbname 如何在文件列表中向下移动?
每当小数余数小于.56时,我想向下舍入(通常在0.50到0.55之间包括0.50到0.55的小数).
例如:
4,55轮到4 轮,
4,56轮到5 轮
我有很多数字(8,55; 13,56; ...)谢谢