Tag: onchange

如何将单元格地址存储到variablesVBA中

我正在编写一个简单的macros,在修改之后将修改后的值(在一张纸上)与其原始值(在另一张纸上)进行比较。 如果它们是不同的值,我希望这两个单元格被赋予一个黄色填充。 但是,当我试图存储目标单元格的地址时,我得到了一个types不匹配的错误。 据我所知,Target.Address返回一个string。 设置位置=目标位置的目标价值,而不是地址。 更改时如何在原始表单上引用相同的目标地址? Dim Location as Range Private Sub Worksheet_Change(ByVal Target As Range) Set Location = Target.Address If Target.Value = Sheets("Original").Range("Location").Value Then Target.Interior.Pattern = xlNone Sheets("Original").Range("Location").Interior.Pattern = xlNone Else Target.Interior.Color = 255 Sheets("Original").Range("Location").Interior.Color = 65535 End If End Sub 谢谢你的帮助!

VBA:如何在combobox中选定的值发生变化时触发事件

我是新来的VBA,并希望触发一个简单的更改事件时,在combobox(UserForm内)的select更改。 我尝试了Private Sub myCombo_AfterUpdate()和Private Sub myCombo_Change()但在这两种情况下,当我在combobox中select一个不同的值时,没有任何反应。 这是combobox的错误方法? 我的小组开始如下,因为我想比较当前在下拉列表中select的项目与表中的值: Private Sub myCombo_AfterUpdate() If Me.myCombo.Value = Worksheets(8).Range("A4") Then 'do stuff End Sub Tim非常感谢你的帮助。

数据如何更新?

我有两列是我在图表中使用的信息,它根据我select的时间范围而变化。 主要问题是列长度可能不同,可以是5行,当我select另一个时间段时,可以是7行或更less,然后是5.图表中的数据是刷新的,但列数不是,例如我有这样的数据: Tom 20 Susan 30 John 15 所以图表会有三列,它们的颜色根据第一列中的值而不同,但是当我select另一个时间段时,数据会更改为: Peter 40 Patrick 70 Joe 36 Megan 57 Susan 74 现在图表将包含只有前三个名字的三列:彼得,帕特里克,乔和列的颜色将与第一个图表相同。 我希望很容易理解我的问题,最主要的是图表的可视化不会像它应该的那样改变。 我添加了一部分代码: Sub Macro1() Dim MyRangex As Range Dim LastRow As Long Dim ChartRange1 As Range LastRow = Worksheets("Calculate").Cells(Rows.Count, "E").End(xlUp).row Set MyRangex = Worksheets("Calculate").Range("E2:E" & LastRow) Set ChartRange1 = Sheets("Calculate").Range("G2:G" & LastRow) ActiveChart.SeriesCollection(1).Select ActiveChart.SeriesCollection(1).XValues = […]

VBA仅参考初始单元格值,防止用户更改单元格值

我试图阻止用户更改某些字段。 但是,我不知道这些字段将在哪些列,只有他们最初将包含的价值。 我目前的做法是这样的: Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim columnHeaderRange As Range Set shtData = Worksheets("Data") Set columnHeaderRange = Union(shtData.Columns(ColumnNumber(5, "example1")), _ shtData.Columns(ColumnNumber(5, "example2")), _ shtData.Columns(ColumnNumber(5, "example3"))) Set columnHeaderRange = Application.Intersect(Target, columnHeaderRange) ElseIf Not (columnHeaderRange Is Nothing) Then With Application .EnableEvents = False .Undo MsgBox "Change is not possible.", 16 […]

Excel VBA Target.address worksheet.onchange无限循环

我有单元格A1,单元格B1和单元格C1,我需要检查值是否由用户或VBA在A1中更改。 whith out如果Target.Address A1上的声明造成无限循环 Private Sub Worksheet_Change(ByVal Target As range) If Target.Address = B1 or Target.Address = C1 Then If IsEmpty(Cell("B1")) then Cell("A1").value = "Enter value" If IsEmpty(Cell("C1")) then Cell("A1").value = "" Else Cell("A1").value = "=C1/B1" End IF End IF End IF If Target.Address = A1 IF "changed by user typing" Then Cell("B1").value = "" […]

使用Excel VBA在JavaScript web中selectonchange值

我对VBA很新,我已经尝试了很多次,使用Excel VBA来select网站上的值,但是它不起作用。 以下是我使用的代码。 其实我不知道如何得到元素,因为它没有“id”或“name”标签。 Sub GetFinanceData() Dim URL As String URL = "http://stock.finance.sina.com.cn/hkstock/finance/00001.html" Set myIE = CreateObject("InternetExplorer.Application") With myIE .navigate URL .Visible = True Do While .Busy = True Or .readyState <> 4 Loop DoEvents .Document.parentWindow.execScript "selectData(zero);", "JavaScript" End With End Sub 下面是HTML代码,打开网站时我想把选项值改为“零”,任何人都可以帮忙查看和build议我可以用什么VBA代码来得到值“零”? 提前感谢! <a name="a1" id="a1"></a> <div class="part02"> <div class="sub01"> <div class="sub01_tt fblue"> <span […]