我试图找到哪个,单元格在excel电子表格中保存最长的字符串.
我正在使用下面的公式来确定最长字符串的长度
MAX(LEN(A2:A2000))
Run Code Online (Sandbox Code Playgroud)
但在这里我被卡住了,因为我不知道在哪里可以找到这个细胞.
我不想进入宏程序,因为它是一次性的工作.但是,如果没有别的事可做,那么......我可以按照那条路走.
我全神贯注于你的想法.
最好.
我已经看到了很多关于这个问题的建议,我已经尝试了所有这些,但似乎都没有.VBA代码位于非Microsoft产品(SAP Business Objects,这可能是问题).我创建了一个Excel对象:
Set oExcel = CreateObject("Excel.Application")
从特定工作簿中的某个工作表的第1列加载内容,然后关闭Excel.每次,它在内存中留下一个进程,占用5+ mb的内存.
我尝试使oExcel对象可见,这样至少我可以在不使用任务管理器的情况下杀死它,但是当我调用Quit时,UI退出,仍然离开了进程.
每次运行代码时,它都会创建一个新进程.所以我尝试通过调用重用任何现有的Excel进程
Set m_oExcel = GetObject(, "Excel.Application")
并且只有在该调用不返回任何内容时才创建它
这并没有扩散这些过程,但单个过程每次增长5+ mb,因此问题基本相同.
在每种情况下,我关闭我打开的工作簿,并在退出之前将DisplayAlerts设置为False:
m_oBook.Close SaveChanges:=False
m_oExcel.DisplayAlerts = False
m_oExcel.Quit
Run Code Online (Sandbox Code Playgroud)
这段代码已经使用了至少五年,但是在我们迁移到Windows 7之前,这个问题并没有出现.
如果它有帮助,这是完整的代码.请注意,所有Excel对象都是每个建议的模块级变量("m_"前缀),并且我已根据另一个建议使用了"一点"规则.我也尝试使用通用对象(即后期绑定),但这也没有解决问题:
Private Function GetVariablesFromXLS(ByVal sFile As String) As Boolean
On Error GoTo SubError
If Dir(sFile) = "" Then
MsgBox "File '" & sFile & "' does not exist. " & _
"The Agent and Account lists have not been updated."
Else
Set m_oExcel = CreateObject("Excel.Application")
Set m_oBooks = m_oExcel.Workbooks
Set m_oBook = …Run Code Online (Sandbox Code Playgroud) 我有一些Excel VBA代码需要知道下载文件夹路径.我怎么能这样做?
由于您可以移动" 下载"文件夹(以及" 文档"和大多数文件夹,通过文件夹属性),因此环境变量%USERPROFILE%无法构建类似的路径%USERPROFILE%\Downloads,WScript.Shell.SpecialFolders也不会列出"下载"文件夹.
我想必须要阅读注册表,但我对此毫无头绪.
谢谢!
我试图采用变量变量并将其转换为字符串,以便我可以对数据运行拆分函数.但是,每当我尝试重新定义变体时,我都会遇到类型不匹配错误.我使用了CStr(),Str()和ToString函数.没有工作.
我错过了什么?
Function FlatLine(ByVal lines As Variant)
Dim flat() As String
ReDim Preserve flat(i)
For i = 0 To UBound(lines)
flat(UBound(flat)) = lines(i)
ReDim Preserve flat(LBound(flat) To UBound(flat) + 1)
Next i
Dim flat2 as String
flat2 = Cstr(flat)
^ errors there.
Run Code Online (Sandbox Code Playgroud) 我有一张数字表:
1
2
3
4
5
6
7
.
.
.
Run Code Online (Sandbox Code Playgroud)
我想得到什么:
*1*
*2*
*3*
*4*
*5*
*6*
*7*
.
.
.
Run Code Online (Sandbox Code Playgroud)
我写了一个公式,但我不知道如何将此函数应用于现有表.我一直得到某种参考错误.(REF!)
我的公式:
= "*" & A2:A(whatever number is last) & "*"
Run Code Online (Sandbox Code Playgroud) 我在十多年前编写了一个Excel VBA加载项,它使用旧的Commandbars将菜单放在Excel的"工具"菜单中(在Excel 2003及更早版本中)或Excel的"加载项"选项卡中(在Excel 2007及更高版本中).从97到2013,所有版本的Excel中出现的菜单从未出现过问题.
但是现在用户说Excel Excel中没有出现Excel加载项菜单.通常这意味着加载项未加载,但在他的情况下加载项已加载并正常工作.我们知道加载项已加载并正在工作,因为加载项添加了用户定义的工作表函数,并且这些UDF对他来说工作正常.但是他想要进入加载项的菜单而不能.
我的谷歌搜索显示有些人在2013年使用加载项菜单时出现问题,但我没有找到任何特定于此问题的内容.
是的,他尝试在Excel选项>自定义功能区中启用"加载项"选项卡.
BTW这是一个.xla加载项,而不是COM加载项.
有什么建议?
出于某些技术原因,我们不能在单词中使用样式.为了加快反复应用全局属性,我创建了一个可以从简单的xml样式表中读取的类.该表包含不同的"段落".每个段落只存储我们最常使用的段落属性.
我习惯使用C++,我可以使用动态内存,而我正在尝试复制动态分配的数组的行为.但是,当我尝试重新调暗时,我收到错误消息"Array arleady dimensioned".
我对MSDN的研究表明,为了ReDim,数组必须是Global或者是"一般声明上下文".这让我觉得它可能根本无法在类中完成.
摘自MSDN:
"您只能在过程级别使用ReDim.因此,变量的声明上下文必须是一个过程;它不能是源文件,命名空间,接口,类,结构,模块或块".
我试图搜索堆栈溢出"Word VBA Array已经标注尺寸",并且无法获得所有3页结果.
private type pStyle 'Definition removed because it's not needed
private Paragraphs(0) As pStyle 'Initially an empty array of paragraphs
Run Code Online (Sandbox Code Playgroud)
后来我有以下功能
Public Function AddEmpty()
'Create space
count = count + 1
ReDim Preserve Paragraphs(count)
AddEmpty = count
End Function
Run Code Online (Sandbox Code Playgroud)
如果有任何想法,请告诉我.我宁愿不必"估计"每个样式表所需的段落样式的数量,因为每个文件都不同.
我为这个愚蠢的问题道歉.我正在维护旧的遗留VB6代码,我有一个实际工作的功能 - 但我根本无法弄清楚它为何起作用,或者为什么没有它就无法运行代码.
基本上,此函数读取UTF-8文本文件并在DHTMLEdit组件中显示其内容.它的方式是,它将整个文件读入一个字符串,然后使用ANSI代码页将其从双字节转换为多字节字符串,然后将其转换回双字节.
使用这整个精心设计的机制可以使组件同时正确显示包含希伯来语,阿拉伯语,泰语和中文的页面.不使用此代码使文本看起来像被转换为ASCII,显示字母曾经的各种标点符号.
我不明白的是:
[码]
Private Declare Function MultiByteToWideChar Lib "kernel32" (ByVal codePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Private Declare Function WideCharToMultiByte Lib "kernel32" (ByVal codePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpDefaultChar As Long, lpUsedDefaultChar As Long) …Run Code Online (Sandbox Code Playgroud) 我的电子表格已锁定,以便用户可以编辑值,但不能更改单元格的格式.单元格具有"常规"类型,但有数据验证以确保输入是数字.
尽管存在锁定,但可以通过输入特定值来更改单元格的格式.例如,输入4%会将格式更改为百分比,输入£4会将类型更改为货币等.
我想防止这种情况,因为a)单元格的存储值可能已经改变,例如0.04而不是4和b)现在用户无法改变格式.
我可以通过将单元格类型设置为数字而不是一般来防止这种情况.然而,这也是不可取的,因为它将我与显示固定数量的小数位联系起来.我希望'4'和'4.256'都显示为这样,如果没有向前者添加尾随零(4.00)或舍入后者(4.26),似乎没有办法做到这一点.
请有人告诉我如何防止自动格式化更改,或者如何设置一个能够满足我想要的数字格式.
我们在使用Microsoft Access运行的公司中拥有旧软件(由多年前的第一批员工之一制作).老板让我在点击的特定文本框中添加随机字符串生成但我不知道如何做到这一点.我没有任何Microsoft Access编程经验,这就是为什么我要求你提供帮助.
到目前为止,我设法创建了按钮和文本字段.多数民众赞成在哪里停止.我还设法访问按钮操作的代码:
Private Sub command133_Click()
End Sub
Run Code Online (Sandbox Code Playgroud)