Private Sub mnuExel_Click()
Dim xl As Object ' New Excel.Worksheet
Dim ws As New Excel.Worksheet
Dim wb As Workbook
Dim rng As Excel.Range
Set xl = CreateObject("Excel.Sheet")
Set xl = xl.Application.ActiveWorkbook.ActiveSheet
Set wb = xl.Application.Workbooks(1)
Set rng = wb.Windows(1).ActiveCell.CurrentRegion
For r = 1 To rng.Rows.Count
debug.print rng.Cells(r, 1).Text
Next r
end sub
Помогите дораться до ячейки в Excel используя VB6
Option Explicit
Dim oXL As Object
Dim WithEvents MyButton As Office.CommandBarButton
Private Sub AddinInstance_OnConnection(ByVal Application As Object, _
ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
ByVal AddInInst As Object, custom() As Variant)
On Error Resume Next
MsgBox "My Addin started in " & Application.Name
Set oXL = Application
Set MyButton = oXL.CommandBars("Standard").Controls.Add(1)
With MyButton
.Caption = "My Custom Button"
.Style = msoButtonCaption
.Tag = "My Custom Button"
.OnAction = "!<" & AddInInst.ProgId & ">"
.Visible = True
End With
End Sub
Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As _
AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
On Error Resume Next
MsgBox "My Addin was disconnected by " & _
IIf(RemoveMode = ext_dm_HostShutdown, _
"Excel shutdown.", "end user.")
MyButton.Delete
Set MyButton = Nothing
Set oXL = Nothing
End Sub
Private Sub MyButton_Click(ByVal Ctrl As Office.CommandBarButton, _
CancelDefault As Boolean)
' !!! А сдесь хотелось бы добраться до ячейки листа!!!
End Sub
Код:
Я уже точно не помню что у меня эта функция делала, потому что была написана временно, для сверки данных из ёкзеля и mdb.
Или делайте просто через ODBC (нужен контрол или класс ADO):
Код:
Private Sub openExcelDoc(s as String)
Dim rst As New ADODB.Recordset
Dim cnn As New ADODB.Connection
Dim fl As ADODB.Field
If Len(s) Then
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};" & "ReadOnly=1 ;DBQ=" & s
rst.Open "SELECT * FROM [Лист1$]", cnn, adOpenStatic, adLockOptimistic
' печатаем имена столбцов
For Each fl In rst.Fields
Debug.Print fl.Name
Next
' печатаем данные первого столбца по ячейкам
Do Until rst.EOF
Debug.Print rst.Fields(1).Value
rst.MoveNext
Loop
End If
End Sub
Dim rst As New ADODB.Recordset
Dim cnn As New ADODB.Connection
Dim fl As ADODB.Field
If Len(s) Then
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};" & "ReadOnly=1 ;DBQ=" & s
rst.Open "SELECT * FROM [Лист1$]", cnn, adOpenStatic, adLockOptimistic
' печатаем имена столбцов
For Each fl In rst.Fields
Debug.Print fl.Name
Next
' печатаем данные первого столбца по ячейкам
Do Until rst.EOF
Debug.Print rst.Fields(1).Value
rst.MoveNext
Loop
End If
End Sub
В этом случае екзель вообще не нужен, не говоря чтобы в нем был загружен какой-нить шит.
И чтобы работала по типу вставка функции в excel
Мне нужен синтаксис определения активной ячейки (также книги и листа) или лучше если код с пояснениями
Доступ к активной ячейке: ActiveWindow.ActiveCell