我有一个Excel工作表,其中包含以下宏.我想每秒循环一次,但如果我能找到这样做的功能,那就很危险.不可能吗?
Sub Macro1()
'
' Macro1 Macro
'
Do
Calculate
'Here I want to wait for one second
Loop
End Sub
Run Code Online (Sandbox Code Playgroud) 我在excel工作表中有一个较大的表:
Column_1 | Column_2 | Column_3
ValueA ValueB ValueC
....
Run Code Online (Sandbox Code Playgroud)
我需要的是一个函数,它将范围和类似SQL的查询字符串作为输入,并返回与查询匹配的行范围,例如:
=SQL_SELECT(A1:C1000, "SELECT * WHERE Column_1 = ValueH AND Column_3 = blah")
Run Code Online (Sandbox Code Playgroud)
这样的事情存在吗?或者什么是实现自己的最佳方式?
谢谢
我在excel文件中有大量数据.
例如:说我像保罗的儿子一样,我要把它当作保尔森.
输入:paul son
输出:paulson.
在某些单元格中,我的数据类似于mic-li,当这种类型的单词出现时,它不应该替换任何东西,它应该只删除单词之间的空格.
我编写了一个采用二维数组的宏,并将其"打印"到excel工作簿中的等效单元格.
有没有更优雅的方式来做到这一点?
Sub PrintArray(Data, SheetName, StartRow, StartCol)
Dim Row As Integer
Dim Col As Integer
Row = StartRow
For i = LBound(Data, 1) To UBound(Data, 1)
Col = StartCol
For j = LBound(Data, 2) To UBound(Data, 2)
Sheets(SheetName).Cells(Row, Col).Value = Data(i, j)
Col = Col + 1
Next j
Row = Row + 1
Next i
End Sub
Sub Test()
Dim MyArray(1 To 3, 1 To 3)
MyArray(1, 1) = 24
MyArray(1, 2) = 21
MyArray(1, 3) = 253674
MyArray(2, …Run Code Online (Sandbox Code Playgroud) 我期待实现VBA 特里路技术算法,该算法能够处理的时间(小于15-20秒)相对较短量大幅英语词汇(〜50,000字).由于我是一名C++程序员(这是我第一次做任何实质性的VBA工作),我构建了一个快速概念验证程序,能够在大约半秒钟内完成计算机上的任务.然而,当测试VBA端口的时候,它花了差不多两分钟来做同样的事情 - 为了我的目的,这是一个不可接受的长时间.VBA代码如下:
节点类模块:
Public letter As String
Public next_nodes As New Collection
Public is_word As Boolean
Run Code Online (Sandbox Code Playgroud)
主要模块:
Dim tree As Node
Sub build_trie()
Set tree = New Node
Dim file, a, b, c As Integer
Dim current As Node
Dim wordlist As Collection
Set wordlist = New Collection
file = FreeFile
Open "C:\corncob_caps.txt" For Input As file
Do While Not EOF(file)
Dim line As String
Line Input #file, line
wordlist.add line
Loop
For a = 1 To …Run Code Online (Sandbox Code Playgroud) 为什么以下不起作用:
Range(Cells(1,1)).Value = 3
Cells(1,1)应该与使用A1权利基本相同?
(我意识到我可以做到Cells(1,1).Value = 3,但我只是好奇为什么它不起作用.)
我读了MSDN条目,它显示第一个参数必须是A1样式,但是这样的东西确实有效:
Range(Cells(1,1), Cells(2,3)).Value = 2
完全糊涂了.
我下载了一个 CSV 文件形式的 Google Sheets 工作簿,并尝试将其作为表格导入到我的 MySQL Workbench 中,但我不断收到此错误...
未处理的异常:“ascii”编解码器无法解码位置 0 中的字节 0xef:序号不在范围内(128)
我曾多次尝试以不同方式导出/保存它,但没有任何效果。
任何对此的帮助将不胜感激!谢谢你!
有很多基于公式的解决方案可用于从 Excel 中的列、行或连续范围中查找最后一个非空单元格值,例如,对于列,最流行的是=LOOKUP(2,1/(A:A<>""),A:A)和=LOOKUP(2,1/(NOT(ISBLANK(A:A))),A:A)。这很好,但它只适用于连续范围。然而,有时,您需要对断开连接的单元格列表或单元格范围而不是单个连续范围执行相同的操作。因此,如果有一个假设的函数FINDLASTNONBLANK(),它的调用将如下所示:
对于任意长的单细胞列表
=FINDLASTNONBLANK(A1, D1, F1)
=FINDLASTNONBLANK(A1, D1, F1, X1)
Run Code Online (Sandbox Code Playgroud)
对于任意长的范围列表
=FINDLASTNONBLANK(A1:A4, A10:A15)
=FINDLASTNONBLANK(A1:A4, A10:A15, A20:A25)
Run Code Online (Sandbox Code Playgroud)
显然,没有这样的现成公式,所以我想知道是否有办法为此炮制基于公式的解决方案。没有 VBA UDF。
到目前为止,我正在朝着以下方向思考:如果我可以编写一种公式来将断开连接的单元格/范围连接到一个范围/数组中,那么也许我可以使用经典的黑客=LOOKUP(2,1/(A:A<>""),A:A),就像这样(假设假设的公式JOINRANGES()或假设的聚合语法{,}) :
=LOOKUP(2,1/(JOINRANGES(A1:A4,A10:A15)<>""),JOINRANGES(A1:A4,A10:A15))
=LOOKUP(2,1/({A1:A4,A10:A15}<>""),{A1:A4,A10:A15})
Run Code Online (Sandbox Code Playgroud)
那么,Excel 中是否有一种语法可以从我不知道的不相交单元格/范围/数组列表中指定数组?如果有,它应该至少向后兼容 Excel 2007。
我可以将解决方案限制为一维数据源(仅行,仅列),而不必在二维矩阵上工作。事实上,我可以选择仅处理同一行(甚至不是列)的不相交数据的解决方案。
如何从存储过程导出到Excel工作簿到具有少量sql语句的多个工作表?
我目前正在使用以下声明:
EXEC proc_generate__excel 'db', 'temp',@filename, @SeqNo, @ext, @sqlorder
Run Code Online (Sandbox Code Playgroud)
如果有三个sql语句,它将创建三个Excel工作簿.
如何在一个Excel工作簿中将三个sql语句中的数据导出到三个表?
我想我必须在这里生气,我想做的是编写一个执行IF测试的简单Excel公式,如果结果为false,我想要超链接一些文本,如果是,我想要显示一些文本这不是超链接.
所以例如 -
=IF(1=1,"1",HYPERLINK("2"))
Run Code Online (Sandbox Code Playgroud)
这会像你期望的那样返回1,但是1是超链接的 - 如果值为2,我只想要超链接.
当然这有可能吗?提前感谢任何建议!
excel ×8
vba ×5
excel-vba ×4
excel-2007 ×1
excel-2010 ×1
function ×1
hyperlink ×1
if-statement ×1
mysql ×1
sql ×1
sql-server ×1
trie ×1