首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击列表框时更改工作表中的数据

单击列表框时更改工作表中的数据
EN

Stack Overflow用户
提问于 2015-11-15 08:03:01
回答 1查看 862关注 0票数 0

我已经在Excel上创建了一个ListBox ActiveX。我想根据在列表框中选择的内容在工作表上放置不同的数据。例如,现在选择了"Semaine 48“并且数据是111和222。

然而,我想要的不是用vba代码设置数据,而是当用户选择了"Semaine 47“并在其他东西中更改了实例111时,更改会被保存,当用户关闭文件然后再次打开文件时,数据仍然会更改(而不是111)

你能帮帮忙吗?

代码语言:javascript
复制
Private Sub ListBox1_Click()

Dim tableau(1, 2) As String 
tableau(0, 0) = "1"
tableau(1, 0) = "2"

tableau(0, 1) = "11"
tableau(1, 1) = "22"

tableau(0, 2) = "111"
tableau(1, 2) = "222"

Dim I As Integer
I = ListBox1.ListIndex

Select Case (I)
  Case Is = 0
    Range("A11") = tableau(0, 0)
Range("B11") = tableau(1, 0)

  Case Is = 1
    Range("A11") = tableau(0, 1)
Range("B11") = tableau(1, 1)

  Case Is = 2
    Range("A11") = tableau(0, 2)
Range("B11") = tableau(1, 2)

End Select
End Sub
EN

回答 1

Stack Overflow用户

发布于 2015-11-15 10:12:44

好的,asuming (就像评论中说的) sheet2看起来是这样的:

代码语言:javascript
复制
  |    A    |    B    |
1 | item1a  | item1b  |
2 | item2a  | item2b  |
3 | item3a  | item3b  |
4 | item4a  | item4b  |
...

然后在模块中:

代码语言:javascript
复制
Option Explicit 'You don't need that, but i recommend it

Public iLBItem As Long 'this is needed here (not in a sub)

将您的列表框代码更改为:

代码语言:javascript
复制
Private Sub ListBox1_Click() 'still, i recommend using ListBox1_Change()
  Dim i As Integer
  iLBItem = 0
  i = ListBox1.ListIndex + 1
  Sheet1.Cells(11, 1).Value = Sheet2.Cells(i, 1).Value
  Sheet1.Cells(11, 2).Value = Sheet2.Cells(i, 2).Value
  iLBItem = i
End Sub

它与您的代码做同样的事情,但从sheet2中选取值。

在列表框所在的工作表中添加:

代码语言:javascript
复制
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If iLBItem Then
    If Target.Address = "$A$11" Then Sheet2.Cells(iLBItem, 1).Value = Sheet1.Cells(11, 1).Value
    If Target.Address = "$B$11" Then Sheet2.Cells(iLBItem, 2).Value = Sheet1.Cells(11, 2).Value
  End If
End Sub

每当工作表中的某些内容发生更改时,它都会检查iLBItem是否为<> 0 (0计为false,>0计为true,只有If iLBItem Then才能工作)。如果这是真的,它将检查更改Target.Address的地址。这里有$A$11$B$11,它会简单地将这个表的值放到sheet2中保存在iLBItem中的行中。

如果你还有任何问题,就写评论吧。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33714863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档