在excel 2013中激活工作表时出现问题

时间:2014-09-25 16:57:55

标签: excel-vba excel-2013 vba excel

我的宏在excel 2010中工作得很完美,但在2013年我在vba中激活工作簿时出现了一个主要问题,当选择某个工作表+选择单元格时我可以填写数据,但是当按下输入时或箭头键,数据设置为我的文件的第一个可见页面。 当我激活另一个工作簿时会发生这种情况,但是当我选择某个工作表时也会在同一个工作簿中,输入的数据将转到第一个工作表...从excel 2010到2013的更改会使这种情况发生?

这是我使用的代码:

Workbooks(MachineInspectieLijst & ".xlsm").Activate
Workbooks(MachineInspectieLijst & ".xlsm").Worksheets(MachineInspectieLijst).Range("V5").Select

当我在V5中输入一个值并输入时,该值消失并显示在第一页的V5上......大部分都是。

当我在页面或工作簿之间手动切换时,它比起作用......我找不到任何答案。

希望有人有答案。

2 个答案:

答案 0 :(得分:0)

按顺序执行此过程:

Sub hfjsdfh()
    Workbooks(MachineInspectieLijst & ".xlsm").Activate
    Worksheets(MachineInspectieLijst).Select
    Range("V5").Select
End Sub

答案 1 :(得分:0)

This is the actual sub, I tried your suggestion, but exactly the same...Indeed, it is like the second workbook is not really activated, but how to solve? has it to do with the userform who stays loaded? this one must stay loaded, as it contains lot of necessary information and is only unloaded at new start. Nevertheless, I tried to unload as test, but same problem. Can it be due to excel itself?

Private Sub CmdGetInspectionList_Click()
Dim thesentence As String
Dim WB As Workbook
Set WB = ThisWorkbook
Dim WB2 As Workbook
frmKlantSelectie.Hide
Application.EnableEvents = False
If Me.cboDocumentType.Value = "Sales Budget Quotation" Then
     MachineInspectieLijst = "Machines_Sales"
     WB.Worksheets("PreInspArticles").Range("J1") = "Sales"
Else
     MachineInspectieLijst = Me.cboInspectieMachine.Value
End If
loginnaam = StrConv(WindowsUserName, vbUpperCase)
thesentence = "C:\Users\" & loginnaam & "\Dropbox\2_Doc_Service\DATA\Pre_Inspection_Checklist\" &      MachineInspectieLijst & ".xlsm"

'checken ofdat de file wel bestaat in de directory
 If Dir(thesentence) <> "" Then
     MsgBox "Machine Check list exists! Press 'OK' and file will be shown!"
'Test to see if the file is open.
    If IsFileOpen(thesentence) Then
       Workbooks(MachineInspectieLijst & ".xlsm").Activate
    Else
 'Display a message stating the file is not in use.
    Set WB2 = Workbooks.Open(thesentence)
 End If
  Else
     MsgBox "No machine selected Or Check list not yet existing."
     frmKlantSelectie.Show
     Me.TxtInspectionList.SetFocus
  Exit Sub
  End If
    WB2.Worksheets(1).Range("V5").Select
    Application.EnableEvents = True

  End Sub