Tag: vba

列表更新vba excel后刷新combobox

我试图自动更新combobox列表。 只有在closures并打开工作簿时,或者在VBA上按下停止button并再次运行macros时,才能正确更新。 我有以下的VBA代码。 Private Sub UserForm_Initialize() Dim cod As Range Dim pro As Range Dim cli As Range Dim ws As Worksheet Dim ws5 As Worksheet Set ws = Worksheets("ListaProductos") Set ws5 = Worksheets("ListaClientes") For Each cod In ws.Range("CodigoProductoLista") With Me.codigo .AddItem cod.Value .List(.ListCount – 1, 1) = cod.Offset(0, 1).Value End With Next cod For […]

直接复制评估的Excel函数的值

我知道我可以复制包含评估公式的列,将其粘贴到相邻的列中,并指定粘贴值(即文本string),以便粘贴值,然后我可以select,复制和编辑值文本如我所愿。 但是,我想要一个更直接的方式来产生一个可编辑的值列。 按照优先顺序,如果我能够: (1)通过指定复制模式/选项直接从包含公式的单元格中直接复制值,而不必指定粘贴模式/选项(这样,如果我想将值粘贴到Excel以外,例如,我可以执行所以直接) – 我相信这是不可能的,但想知道我是否忽略了一些东西 (2)以一种将“遗漏”值“抛出”到其他单元格的方式写公式,根据需要覆盖其他单元格中的任何单元格,但是不会将公式本身的轨迹传递给其他单元格 (3)使用在后台运行的工作表macros,并在列A值更新时自动将列A中的值复制到列B中; (4)在删除公式的公式列上执行一些操作,但留下(可编辑的)值(具有显而易见的缺点,即一旦它们消失就不能重复使用公式)。 哪些是可能的?

UDF来做一种替代数组函数

我试图做一个函数,不仅用一个文本replace另一个文本,而且用另一个横向值集合replace范围内的一组值。 我有这个: Public Function SubstituteRange(RangeWithText As Range, TwoColumnMatrix As Range) As String Dim Text As String Text = "/" & RangeWithText.Value & "/" 'as example st like this: "/" & "1/2/3/4/5/6/7/8" & "/" = "/1/2/3/4/5/6/7/8/" Dim SearchForRange As Range Set SearchForRange = TwoColumnMatrix.Columns(1) 'let us say "A1:A4" with /2/ /3/ /4/ /5/ in each cell […]

将范围保存为一个图片文件/ pdf在一个页面上

我正在尝试将范围保存为图片文件。 下面的代码(从另一个post挖掘)的作品,但我不想创build一个图表页面,然后我需要删除。 有什么build议么? Sub savedeal() Dim sSheetName As String Dim oRangeToCopy As Range Dim oCht As Chart Dim myFileName As String, myPath As String myFileName = Format(Now(), "dd-mmm-yy") & "-" & "DEAL.PNG" myPath = "D:\Hughs Files\Google Drive\Work Folder\Polaris\Blog\" Worksheets("BOOK").Range("B15:M45").CopyPicture xlScreen, xlBitmap Set oCht = Charts.Add With oCht .Export Filename:=myPath & "\" & myFileName, Filtername:="PNG" End […]

dynamic修改表格大小

我写了一个代码,在过滤一些行后从其他表导入表的一个代码。我的问题是,当我超过了表中的行数超过了表。 现在,我想知道是否有办法用行数来dynamic修改表的大小。 Public Sub refresh() Dim ws1 As Worksheet, ws2 As Worksheet, lr1 As Long, lRow As Long Set ws1 = ThisWorkbook.Worksheets("Scénarios de menace") Set ws2 = ThisWorkbook.Worksheets("Analyse de risque") Application.Calculation = xlCalculationAutomatic ws2.Range("B6:N" & ws2.Cells(ws2.Rows.Count, 2).End(xlUp).Row).ClearContents lr1 = ws1.Cells(ws1.Rows.Count, 2).End(xlUp).Row ws1.Range("A1:A" & lr1).AutoFilter Field:=1, Criteria1:="x" ws1.Range("B3:N" & lr1).SpecialCells(xlCellTypeVisible).Copy ws2.Range("B6").PasteSpecial Paste:=xlPasteValuesAndNumberFormats ws1.Range("A6:A" & lr1).AutoFilter ws2.Activate: […]

匹配邮编数据库地址

我有一个电子表格,其中包含包含邮政编码的实际美国地址。 我也是美国所有邮编的纬度/经度的数据库,可以在这里find: http : //www.boutell.com/zipcodes/ 我正在寻找一个VBA解决scheme来匹配正确的纬度/经度的邮政编码。 一个声明说:“如果邮政编码匹配,请在新栏中input相应的邮政编码”。

链接来自不同工作表的数据字段

我有报告说,我经常从两个不同的来源运行,这两个来源都有一个唯一的标识符,用于链接两个报告中的数据(我将调用字段ID“LINK ID”)。 该字段出现在两组输出中(但是输出来自2个填充不同数据点的不同系统)。 我通常将每个报告剪切并粘贴到新创build的工作簿中的单独工作表中,然后进行匹配。 有一次,我曾经在一个子例程中循环遍历包含“LINK ID”的列,然后在另一个工作表上包含相同的“LINK ID”的另一列循环,如果发现一个匹配它会复制链接到匹配的整个数据行并粘贴到第一个工作表上。 我所做的代码从来没有完全完成,但是我想看看能否一劳永逸地找出这个问题,因为如果我不必一次一个一个浏览这些代码,那真是太棒了。 。 这是我有什么: Private Sub Find_And_Link() Dim rw As Long Dim mr2 As Long Dim ws3 As Worksheet Set ws3 = Sheets("VM") With Sheets("AY") For rw = 2 To .Cells(Rows.Count, "F").End(xlUp).Row If CBool(Application.CountIf(ws3.Columns(1), .Cells(rw, "F").Value)) Then mrw = Application.Match(.Cells(rw, "F"), ws3.Columns(1), 0) ws3.Cells(mrw, "A").Resize(1, 12).Copy _ Destination:=.Cells(rw, "G") […]

使用VBA从谷歌检索信息,试图build立一个停止时,谷歌不能按预期工作

Sub test() Dim IE As New InternetExplorer Dim city$, state$ Dim i As Integer Dim dd As Variant Dim doc As HTMLDocument 'variable for document or data which need to be extracted out of webpage Set doc = IE.document i = 2 'start row 'Setting the variables city = Cells(i, 1).Value 'City variable for search […]

按一列对多列进行sorting

我在Excel中制作了一个三列的电子邮件列表。 在工作表上,我有两个button,“按名称sorting”和“按添加datesorting”。 我想按所选button对所有三列进行sorting,这样我可以更快地find条目(以后我还会input一个单独的查找函数)。 基本上,我想要在工作表中已经在工具栏上的sortingfunction,你可以按它,它知道哪个列已经sorting。 我已经看到macros和VBA的东西,但所有这些都是由单独的参数sorting列,而我需要这些列链接。

插入sendToBack图像后

我有一个正在处理插入照片的代码,但我不能发回它。 我已经尝试从这个职位复制行.ZOrder,但我正在与对象不操作.. 这里是我的代码: Private Sub CommandButton13_Click() Dim p As Object Dim rng0 As Range Dim sh As Worksheet: Set sh = ActiveSheet Set rng0 = Range("Q3:S5") Application.ScreenUpdating = False If UserForm1.txtImage = "" Then rng0.Borders(xlEdgeBottom).LineStyle = xlContinuous Exit Sub Else sh.Range("Q3:S5").Merge Set p = sh.Pictures.Insert(UserForm1.txtImageBackground) sh.Shapes(p.name).LockAspectRatio = False If rng0.Cells.Count = 1 Then Set rng0 […]