我有一个Excel工作表,我需要find特定列中的最后一个非空单元格 。 我如何做到这一点? 下面将为我select这个,但它会select第一个不是空的单元格,我需要在行中的最后一个不空的单元格。 Worksheets("DTCs").Range("A29").End(xlToRight).Select
这是我的第一篇文章。 我是VBA和macros的新手。 如果有人帮助我使用VBA代码和macros,这将是有益的。 每天我会收到约50-60邮件与一个标准科目:“任务已完成”。 我已经为所有这些邮件创build了一个规则来移动到一个特定的文件夹:“任务已完成”。 每天阅读所有50-60封邮件并更新所有邮件非常耗时。 收到的所有50-60封邮件都会有相同的主题,但来自不同的用户。 邮件的身体会有所不同。 我正在使用Outlook 2010和Excel 2010 谢谢,所有的帮助将不胜感激。
人们普遍认为这不是“最佳做法”。 dim rng as range with thisworkbook '<~~ possibly set an external workbook with .worksheets("sheet1") set rng = .range(cells(2, 1), cells(rows.count, 1).end(xlup)) end with end with 定义Range对象范围的两个Range.Cell属性将默认为ActiveSheet属性 。 如果这不是Sheet1(定义为With … End With语句中的.Parent ),则分配将失败, Run-tim error '1004': Application-defined or object-defined error 解决scheme:使用.Cells不是Cells 。 案件结案。 但… 是的. 当Range.Cells属性inheritanceWith … End With语句中定义的.Parent工作表属性时,在此Range对象定义中是否必要? 这怎么可能, dim rng as range with […]
我试图用VBAparsing文本文件,并返回文本文件中给出的path。 例如,文本文件如下所示: *Blah blah instructions *Blah blah instructions on line 2 G:\\Folder\…\data.xls D:\\AnotherFolder\…\moredata.xls 我希望VBA一次加载1行,如果它以*开始,然后移动到下一行(类似于被注释的行)。 对于具有文件path的行,我想把这个path写入单元格,比如A2表示第一个path, B2表示下一个,等等。 我希望能够回答的主要问题是: 1.使用VBA读取文本文件的最佳/简单方法是什么? 2.我该怎么做,一行一行?
我正在为VBA中的数组寻找一个体面的sorting实现。 快速sorting将是首选。 或者任何其他sortingalgorithm,除了泡沫或合并就足够了。 请注意,这是与MS Project 2003一起工作的,所以应避免使用任何与Excel相关的本地函数。
Dim wkbkdestination As Workbook Dim destsheet As Worksheet For Each ThisWorkSheet In wkbkorigin.Worksheets 'this throws subscript out of range if there is not a sheet in the destination 'workbook that has the same name as the current sheet in the origin workbook. Set destsheet = wkbkdestination.Worksheets(ThisWorkSheet.Name) Next 基本上,我遍历原始工作簿中的所有工作表,然后将目标工作簿中的目标工作表设置为与原工作簿中当前迭代工作簿具有相同名称的工作表。 我如何testing该表是否存在? 就像是: If wkbkdestination.Worksheets(ThisWorkSheet.Name) Then
我正在寻找一种方法来自动将VBA文本框中的date格式化为MM / DD / YYYY格式,并且我希望格式化为用户input的格式。例如,一旦用户input第二个号码,程序会自动input“/”。 现在,我用下面的代码得到了这个工作(以及第二个短划线): Private Sub txtBoxBDayHim_Change() If txtBoxBDayHim.TextLength = 2 or txtBoxBDayHim.TextLength = 5 then txtBoxBDayHim.Text = txtBoxBDayHim.Text + "/" End Sub 现在,这在打字时效果很好。 然而,当试图删除时,它仍然input破折号,所以用户不可能删除过去的一个破折号(删除破折号导致长度为2或5,然后再次运行该子,join另一个破折号)。 任何build议更好的方式来做到这一点?
有什么我需要参考? 我如何使用这个: Dim fso As New FileSystemObject Dim fld As Folder Dim ts As TextStream 我收到一个错误,因为它不能识别这些对象。
我有一些使用ActiveXcheckbox来控制某些活动的Excel工作表。 他们最近工作,但今天开始犯错误。 我被一位同事告知了这个消息,但是它仍在我的电脑上工作。 我检查了他对我的Excel版本,他是更新的。 我注意到有新的Windows更新,所以我做了更新。 我应用了待处理的更新后,现在不再适用于我的电脑。 我无法再检查ActiveXcheckbox,并且,作为尝试debugging的一部分,看来我甚至无法将ActiveX控件添加到任何工作表,甚至是新的工作表。 我收到一个错误对话框,上面写着“无法插入对象”。 (我仍然可以添加表单控件,而不是ActiveX。)任何其他人经历了最近的更新后呢? 有什么build议么? 谢谢, 麦克风
不是一个真正的问题,而是张贴这个评论,因为我不记得以前看到这种方法。 我回应了对先前答案的评论,并尝试了一些我以前没有尝试过的方式:结果很有意思,所以我尽pipe将其作为一个独立的问题发布,还有我自己的答案。 在SO(和许多其他论坛)上,有许多关于“我的用户定义的函数出了什么问题”的问题,答案是“你不能从UDF更新工作表” – 这里概述了这个限制: Excel中自定义函数的限制说明 有几种方法可以解决这个问题,例如https://sites.google.com/site/e90e50/excel-formula-to-change-the-value-of-another-cell ),但是我不要以为我的确切方法就是其中之一。 另请参阅: 更改来自UDF的单元格注释