VBA - 我必须使用sheet1中的代码和sheet2

时间:2016-04-14 16:00:12

标签: excel vba excel-vba

这是我的问题。 我有一张名为A的表1,我有一些数据。 我有一张名为Macro的表2,我有一个按钮。 我想用这个按钮在表1(A)上使用我的代码。 但我不能使用模块,我必须使用sheet1到我的代码... Here what I must use

但是当我在归因于我的代码后点击按钮时,它不起作用,它告诉我: Error message

它说: "工作表范围或表中的数据必须在同一工作表上#34;

应用程序或objectSo定义的错误,我的问题是:如何在sheet2上的sheet1上使用按钮和代码?

如果可以帮助您,我的代码的开头就是:

Sub LinkToImage()

  Sheets("A").ListObjects.Add(xlSrcRange, Range("$B$1:$K$300"), , xlYes).Name = _
      "Tableau1"
  Range("Tableau1[#All]").Select
  Sheets("A").ListObjects("Tableau1").TableStyle = "TableStyleLight9"
  'Créé le tableau avec un style prédéfini.


  For Each cel In Range("k2", Range("k200").End(xlUp))
      cel.Offset(0, 1).Select
      cel.Offset(0, 1).RowHeight = 100 'Fixe la hauteur des cellules à 100
      cel.Offset(0, 1).ColumnWidth = 70 'Fixe la taille de la colonne à 40

      If IsFile(cel.Value) = 0 Then
         cel.Offset(0, 1).Value = "Photo non dispo" 'Si la photo n'est pas disponible, on affiche "Photo non dispo"
      Else
          Set image = Sheets("A").Pictures.Insert(cel.Value)
          With image
              .ShapeRange.LockAspectRatio = msoTrue
              .Width = cel.Offset(0, 1).Width
              .Height = cel.Offset(0, 1).Height
              .Left = cel.Offset(0, 1).Left + 5 'Laisse une marge à gauche de 5px
              .Top = cel.Offset(0, 1).Top + 5 'Laisse une marge en haut de 5px
              .Height = 90 'Fixe la hauteur de l'image à 90
              '.Height = 0.9 * cel.Offset(0, 1).Height
              '.Width = 0.5 * cel.Offset(0, 1).Width
              '.Right = cel.Offset(0, 1).Right +5

错误在第一行,我认为是因为Sheets("A"),但我不知道如何解决此问题...

提前感谢,对不起我的英语......

1 个答案:

答案 0 :(得分:0)

添加一个检查" Tableau1"存在如下

Sub LinkToImage()
Dim table As ListObject

On Error Resume Next
Set table = Sheets("A").ListObjects("Tableau1")
On Error Resume Next
If table Is Nothing Then Set table = Sheets("A").ListObjects.Add(xlSrcRange, Range("$B$1:$K$300"), , xlYes).Name = "Tableau1"

  Range("Tableau1[#All]").Select
  ...