关于用vba把excel中的数据保存到一个csv文件中。

关于用vba把excel中的数据保存到一个csv文件中。,第1张

applicationWorkbooksOpen 文件路径

applicationWorkbooks(文件名)Close true或false表示是否保存

复制就是applicationWorkbooks("文件名")sheets("表名")range(源单元格地址)copy ActiveSheetrange(目标单元格地址)

你可以用Set xlApp = CreateObject("ExcelApplication")来建立一个看不到的Excel应用程序对象,然后用xlApp 来替代上面的Application,就会看不到打开的过程了。

Private Sub Worksheet_Change(ByVal Target As Range)

If TargetRow >= 2 And TargetRow <= 1000 And _

Cells(TargetRow, 8) < Date Then

ApplicationEnableEvents = False

For i = 9 To 18

Cells(TargetRow, i) = Sheet2Cells(TargetRow, i)Value

Next

ApplicationEnableEvents = True

End If

End Sub

假设目录工作表名称为:目录

目录工作表A1、B1单元格内容分别为:序号、名称

则对应目录工作表VBA代码为:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim str As String

If SelectionCellsCount = 1 And SelectionHyperlinksCount > 0 Then

str = SelectionValue

Worksheets(str)Visible = True

SelectionHyperlinks(1)Follow NewWindow:=False, AddHistory:=True

End If

End Sub

整个工作簿(ThisWorkbook)代码:

Private Sub Workbook_Open()

Dim i As Integer

Dim sht As Worksheet

For i = 1 To SheetsCount

Set sht = Sheets(i)

If shtName <> "目录" Then

shtVisible = xlSheetHidden

End If

Next

End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

If ShName = "目录" Then

Dim i, j As Integer

Dim sht As Worksheet

Dim str As String

j = WorksheetsCount

Range("A2:B65536")ClearContents

Range("A2:B65536")HyperlinksDelete

For i = 1 To j

str = Sheets(i)Name

If str <> "目录" Then

Cells(i, 1) = i - 1

Cells(i, 2) = str

ShHyperlinksAdd Anchor:=Range("B" & i), Address:="", SubAddress:= _

str & "!A1", TextToDisplay:=str

Sheets(i)Visible = False

End If

Next

Range(Cells(1, 1), Cells(j + 1, 2))EntireColumnAutoFit

Cells(1, 2)Select

End If

End Sub

将以上代码放到指定位置,即可实现你的功能。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/12185697.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存