我试过的
我已经阅读了一些谷歌搜索结果,他们说我应该简化格式化,但我甚至不知道我如何获得4000种不同的单元格格式,更不用说我使用了哪些格式,所以我可以删除一些.
它也会弹出一些文件运行的时间,但不是全部,直到它出现,然后每次运行时都会发生.由于宏正在做很多工作,包括从头开始创建10张,我不知道该怎么做.
有人知道吗
谢谢
如何使用Excel VBA获取长字符串的简短哈希
什么是给定的
到目前为止我做了什么
我认为这个答案是一个很好的开始,因为它生成一个4位十六进制代码(CRC16).
但是4位数字很少.在我的400字符串测试中,20%在其他地方得到了重复.
产生碰撞的机会太高了.
Sub tester()
For i = 2 To 433
Cells(i, 2) = CRC16(Cells(i, 1))
Next i
End Sub
Function CRC16(txt As String)
Dim x As Long
Dim mask, i, j, nC, Crc As Integer
Dim c As String
Crc = &HFFFF
For nC = 1 To Len(txt)
j = Val("&H" + Mid(txt, nC, 2))
Crc = Crc Xor j
For j = 1 …Run Code Online (Sandbox Code Playgroud) 我如何有条件地格式化单元格,如果不是空白,它是灰色的?
我试图做'不等于',但它没有用.
我正在使用Windows Office 2003和Windows XP.我没有看到与以下相同的功能:

到目前为止我尝试了什么:

编辑:想出错了什么.在我的作品(实际工作Excel)中,它们充满了白色.这不是我的Excel文件,所以我之前没有意识到这一点.
我正在编写一种方法,可以Target将单元格精确地粘贴到另一个单元格.该单元格是一个带有一些花式结构的运输标签.有没有办法可以做到?
本来我有这个:
Worksheets("Label").Range("A1").Value = Worksheets("Get Address").Range("A28").Value
Run Code Online (Sandbox Code Playgroud)
它适用于纯文本.然而,我失去了我创建的样式,它们是不同的,因为在第一行之后,风格是不同的:
我也尝试使用Macro Recorder,我得到了一个使用的解决方案.Select,我读了这个问题,尽可能不使用它.我能做什么?
' Created by the Macro Recorder
Range("A28:A33").Select
Range("A33").Activate
Selection.Copy
Sheets("Label").Select
Range("A1").Select
ActiveSheet.Paste
Run Code Online (Sandbox Code Playgroud) 这概述了我想要做的事情.
这对我不起作用,目前还不清楚为什么.
提前感谢您的帮助.
Sub mySub()
dim myDict as Dictionary
myDict=new Dictionary
myDict=myFunc()
End Sub
Function myFunc()
dim myDict2
set myDict2 = new Dictionary
'some code that does things and adds to myDict2'
myFunc=myDict2
End Function
Run Code Online (Sandbox Code Playgroud) 我正在进入Procedure too Large ErrorVBA宏.
我正在使用MS-Excel 2003.
在Excel(2003)中,我想将单元格中值的选择限制为另一个电子表格中允许的值.
例如,在我所拥有的"货币"表中
EUR,1.1 GBP,1.0 USD,1.5
(这是两列,三行)
在我的主要表格中,我想要一个货币列,其中唯一允许的值来自货币表中的A列,即单元格只能包含'EUR','GBP'或'USD'.(在其他地方,我将使用它作为查询来获得汇率,即B列.)
如何限制单元格中的值?像从其他工作表填充的Windows组合框一样下拉将是伟大的.
使用公式,VBA或其他任何答案都可以.即使是指向相关文档的指针也会很棒(我看过,但我不确定要寻找什么).
使用LibreOffice也很有帮助,因为我还没有最终确定电子表格程序的选择,但我认为我有更好的机会在Excel中获得答案.
我正在使用Excel从SQL数据库中提取数据.我使用了另一个SO问题的代码,它运行正常.现在我想从实际表中除了表中的列名.我发现我可以使用For Each fld循环获取名称.然而,仍然存在在Excel中连续水平填充它们的问题,因为列的数量可能会改变 - 所以我认为我需要另一个对于每个循环也或类似的东西.
Sub GetDataFromADO()
'Declare variables'
Set objMyConn = New ADODB.Connection
Set objMyCmd = New ADODB.Command
Set objMyRecordset = New ADODB.Recordset
'Open Connection'
objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;User ID=abc;Password=abc;"
objMyConn.Open
'Set and Excecute SQL Command'
Set objMyCmd.ActiveConnection = objMyConn
objMyCmd.CommandText = "select * from myTable"
objMyCmd.CommandType = adCmdText
objMyCmd.Execute
'Loop Names'
' WHAT TO DO HERE????'
'Open Recordset'
Set objMyRecordset.ActiveConnection = objMyConn
objMyRecordset.Open objMyCmd
'Copy Data to Excel'
ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset)
End Sub
Run Code Online (Sandbox Code Playgroud) 我用:
retVal = Shell("program.EXE " & filename, vbNormalFocus)
Run Code Online (Sandbox Code Playgroud)
要执行我的Excel电子表格的程序需求.
是否可以将EXE文件嵌入excel文件中?
然后我将如何执行呢?
Ideias:
1 - 某种bin2str函数将二进制转换为字符串(因此我可以将它作为变量存储在程序中,并将str2bin(对位)存储起来
2 - 我读了一些关于OLE控件的东西(你可以把它嵌入那里),但我真的不知道从哪里开始
我学会了在Jxl和POI API的帮助下使用Java程序读写Excel文件.是否可以在宏的帮助下运行Java程序?