Tag: vba

使用VBA转换为句子

我一直在谷歌上一页一页地搜寻,在这里寻找解决这个看似简单的请求,但无济于事。 有谁知道一个可靠的方式来使用vba将string转换为句子吗? 理想情况下,我将它构build到一个子而不是一个函数中,所以从GUI调用更容易。 作为参考,我会想要: 这是一个长而粗略的上面的句子。 请立即修改我。 成为: 这是一个长而丑陋的大写句子。 请立即修改我。 转换为标题案例我发现非常简单(因为有一个内置的function),但转换为刑事案件已经certificate确实很难。 我已经尝试了下面的一些方法,但是随时都会出现错误: http://www.vbforums.com/showthread.php?t=536912 http://vbamacros.blogspot.com/2007/09/sentence-case.html 我怎样才能使这个工作?

如何用鼠标更改Excel单元格的值?

我希望能够使用鼠标轻松地更改单元格的值(常量,而不是公式),而无需使用键盘input新的值。 很遗憾,迄今为止还没有被发明出来,因为这样的滚动条可以dynamic观察其他公式和图表发生了什么。 点击一个包含值的单元格后,某个滚动条(或其他魔鬼的设备)出现在单元格下方(或单元格右侧)。 只有使用此设备才能用鼠标更改单元格的值。 应该可以定义滚动条的最小值和最大值。 如果未定义,则应将最小值和最大值假定为当前值的30%(最小值)和170%(最大值)。 当点击另一个单元格时,“旧”滚动条消失,并在点击的单元格下面出现一个新的滚动条。 应该有可能定义滚动条显示的单元格(对于其他单元格不会)。 我需要的东西不是普通的Excel滚动条,它只改变了一个单元格的值,而且我不希望在我的工作表上分布有数百个滚动条。 从我的研究中我发现: 我可以在工作表或工作簿中设置响应被选单元格的事件。 我可以检查该单元格是否允许显示滚动条。 如果是这样,我可以让我的代码创build一个新的滚动条,或使现有的滚动条可见,并find活动单元格下方的滚动条。 更改滚动条可能会影响单元格的值。 一些控制如何值的变化是必要的,以避免15位十进制数字的值。 当单元格被取消select时,滚动条可以被销毁,或隐藏,直到下一次使用。 由于我是VBA的中间用户,有人可以指导我吗? 也许有人以前build造过类似的设备? 更新,2015年2月13日 我已经提交了我的问题的答案。 现在我期待着提高我的工具的速度。 更新,2015年3月23日 以下是一些关于提高我的工具性能的跟进build议

VBA – 获取combobox的选定值

Excel工作表中有成千上万的单元格,它们是ComboBoxes。 用户将随机select一个并填充它。 如何获得所选的ComboBox值? 有没有办法触发一个function(即事件处理程序),当ComboxBoxes已被选中?

将Excel工作簿保存为具有2个字段的文件名的常量path

我是绝对新的Excelmacros,我试图search和放在一起的代码,以适应我的目的,但没有运气。 我希望有人慷慨地帮助我。 Sub save() ActiveWorkbook.SaveAS Filename:="C:\-docs\cmat\Desktop\New folder\ck.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False End Sub 如何将其编辑为:而不是命名保存的文件ck.xls,生成工作表单元格C5和C8中的文件名,中间有一个空格。

VBA – 写入4列数据的所有可能的组合

我已经find了编写3列数据的所有可能的组合的脚本,但是我试图修改代码来写4列,可能5,我不知道如何。 如果任何人都可以帮助,这将是伟大的! 我已经试着做我认为应该通过添加额外的variables,他们会按照(我认为他们会逻辑地),但我geting“编译错误:做不循环”,我不能解释。 这里是用户Excellll的3列(没有我的修改)的代码。 代码的描述在这里:“这段代码将从列A,B和C中获取数据,并给出在E,F和G列中描述的输出。” Sub combinations() Dim c1() As Variant Dim c2() As Variant Dim c3() As Variant Dim out() As Variant Dim j, k, l, m As Long Dim col1 As Range Dim col2 As Range Dim col3 As Range Dim out1 As Range Set col1 = Range("A1", Range("A1").End(xlDown)) Set col2 = Range("B1", […]

如何将数组(Range.Value)传递给本地.NETtypes而不循环?

我想要做的是使用VBA中的.AddRange()方法使用本机C# ArrayList后期绑定填充ArrayList ,但我不知道如何传递一个对象而不是另一个ArrayList作为参数…任何东西否则我已经尝试到目前为止失败… 所以基本上我现在正在做什么(注意: list是通过mscorlib.dll C#的ArrayList ) Dim list as Object Set list = CreateObject("System.Collections.ArrayList") Dim i As Long For i = 1 To 5 list.Add Range("A" & i).Value2 Next 但是,如果i可以= 500K这是相当低效和丑陋的。 在VBA中这也起作用: ArrayList1.AddRange ArrayList2 但是我真正需要/愿意的是传递一个数组而不是ArrayList2 所以我听说我可以将一个数组传递给.NET中的.AddRange()参数。 我在一个小的C#控制台应用程序中testing它,它似乎工作得很好。 下面在纯C#控制台应用程序中工作得很好。 ArrayList list = new ArrayList(); string[] strArr = new string[1]; strArr[0] = "hello"; list.AddRange(strArr); 所以回到我的VBA模块试图做同样的失败.. Dim […]

VBA另存为PDF,文件名为单元格值

我试图将四张表保存为一个PDF。 下面的代码是我到目前为止。 当我在文件名中使用ActiveSheet.Name命令时,它可以工作,但是当我将其更改为dynamic单元格的范围时,它不再起作用,并且出错。 任何帮助,将不胜感激。 Sheets(Array("Dashboard Pg 1", "Dashboard Pg 2", "Dashboard Pg 3", _ "Dashboard Pg 4")).Select Sheets("Dashboard Pg 1").Activate ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\Users\Allen\Desktop\Projects\" & ActiveSheet.Range("K17").Value & ".pdf" _ , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ :=False, OpenAfterPublish:=False Sheets("Summary").Select

VSTO vs Excel-DNA的优缺点?

据我所知,VSTO和Excel-DNA提供了两种不同的将.NET代码导入到Excel中的解决scheme。 一个解决scheme是开源的,另一个解决scheme是由微软开发的。 每种解决scheme的优缺点今天和未来有什么?

使用VBA将单元格值的范围分配给variables数组

我对VBA很新,在这里忍受着我。 我想给一组variables赋值一组范围,即。 运行一个简短的代码来简化以下内容 Dim Sample 1 as string Sample1 = activeworksheet.range("C17").value Dim Sample 2 as string Sample2 = activeworksheet.range("C18").value} 等等 遵循excelfunctions.net教程,我知道我可以缩短声明 Dim Sample(1 to 20) as a string 但教程放在那里(因为它是一个关于名字的教程),build议我填充它如下 sample(1)=activesheet.range("C7").value sample(2)=activesheet.range("C7").value 等等 我发现下面的讨论是在正确的轨道上回答我的追求,但是我很难将其应用于我的情况。 ( 用于循环的Excel VBA数组范围 ) 作为一个后续的说明,我最终试图为这些variables赋值,以便在下面的过程中使用,而不是每次声明和赋值。 谢谢!

VBA Windows 7样式button

我很确定这个问题已经在networking上问了很多,我已经在几个论坛上看到了很多的问题和答案,但是我从来没有看到明确的答案,所以我想知道: 是可以的,使用Windows 7风格的button 在Excel VBA或我必须使用这些灰色的东西看起来像他们来自 ? 我不想使用图像,我的意思是导入这些“ActiveX控件”,我认为这是他们的名字。