Option Strict Off Imports System.IO Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle Imports Microsoft.Office.Interop.Excel.Constants Imports Microsoft.Office.Interop.Excel.XlBordersIndex Imports Microsoft.Office.Interop.Excel.XlLineStyle Imports Microsoft.Office.Interop.Excel.XlBorderWeight Imports Microsoft.Office.Interop.Excel.XlThemeFont Imports Microsoft.Office.Interop.Excel.XlThemeColor Imports Microsoft.Office.Interop.Excel.XlWindowState Imports Microsoft.Office.Interop.Excel Public Class 財務_收支單一覽表_GCM ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet : ReadOnly ds2 As New DataSet Dim DTP As String : Dim N1 As Integer : Dim N2 As Integer : Dim 匯率1 As Double Dim xlApp As Application Dim xlBook As Workbook Dim xlSheet As Worksheet Private Sub Set_清單1() 收支單_dgv.DataSource = Nothing : ds1.Clear() 收支單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 收支單_dgv.ColumnHeadersHeight = 25 收支單_dgv.AllowUserToAddRows = False ConnOpen() SQL1 = "SELECT 支付單號 AS 收支單號, 申請人, 申請日期, 審核人, 審核日期, 核准圖檔, 簽名編碼 FROM 財務控制表 WHERE (審核人 NOT LIKE '') AND (審核人 NOT LIKE '作廢%') AND 審核日期 BETWEEN '" & Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd") & "' ORDER BY 審核日期 DESC" CmdSet_For_DGV() : da.Fill(ds1) : 收支單_dgv.DataSource = ds1.Tables(0) : conn.Close() 收支單_dgv.Columns(0).FillWeight = 160 : 收支單_dgv.Columns(1).Visible = False : 收支單_dgv.Columns(2).FillWeight = 100 : 收支單_dgv.Columns(3).Visible = False 收支單_dgv.Columns(4).FillWeight = 100 : 收支單_dgv.Columns(5).Visible = False : 收支單_dgv.Columns(6).Visible = False End Sub Private Sub Set_清單2() 彙總_dgv.DataSource = Nothing : ds2.Clear() 彙總_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 彙總_dgv.ColumnHeadersHeight = 25 彙總_dgv.AllowUserToAddRows = False ConnOpen() If 全部_ch.Checked = True And 含稅_ch.Checked = False And 非稅_ch.Checked = False Then SQL2 = "" ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = True And 非稅_ch.Checked = False Then SQL2 = " AND (財務流水帳.含稅 = 1)" ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = False And 非稅_ch.Checked = True Then SQL2 = " AND (財務流水帳.含稅 = 0 OR 財務流水帳.含稅 IS NULL)" End If SQL1 = "SELECT LEFT(財務控制表.審核日期, 7) AS 日期, 會計科目.第一階 AS 主項, 會計科目.第二階 AS 子項, 會計科目.會計科目 AS 子細項, SUM(財務流水帳.零用金) AS 零用金, SUM(財務流水帳.支票數) AS 支票, SUM(Cast(財務流水帳.收入 AS money)) AS 收入, SUM(Cast(財務流水帳.支出 AS money)) AS 支出, 財務流水帳.銀行 AS 幣別, 財務流水帳.匯率 FROM 財務控制表 RIGHT OUTER JOIN 財務流水帳 ON 財務控制表.支付單號 = 財務流水帳.支付單號 RIGHT OUTER JOIN 會計科目 ON 財務流水帳.類別 = 會計科目.編號 WHERE (財務控制表.審核日期 BETWEEN '" & Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd") & "') " & SQL2 & " GROUP BY 會計科目.第一階, 會計科目.第二階, 會計科目.會計科目, LEFT(會計科目.編號, 7), LEFT(財務控制表.審核日期, 7), 財務流水帳.銀行, 財務流水帳.匯率 ORDER BY 幣別, LEFT(財務控制表.審核日期, 7), LEFT(會計科目.編號, 7)" CmdSet_For_DGV() : da.Fill(ds2) : 彙總_dgv.DataSource = ds2.Tables(0) : conn.Close() 彙總_dgv.Columns(0).FillWeight = 100 : 彙總_dgv.Columns(1).FillWeight = 140 : 彙總_dgv.Columns(2).FillWeight = 140 : 彙總_dgv.Columns(3).FillWeight = 140 彙總_dgv.Columns(4).FillWeight = 100 : 彙總_dgv.Columns(5).FillWeight = 100 : 彙總_dgv.Columns(6).FillWeight = 100 : 彙總_dgv.Columns(7).FillWeight = 100 彙總_dgv.Columns(8).FillWeight = 100 : 彙總_dgv.Columns(9).FillWeight = 100 彙總_dgv.Columns(6).DefaultCellStyle.Format = "#,##0.00" : 彙總_dgv.Columns(7).DefaultCellStyle.Format = "#,##0.00" : 彙總_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" 彙總_dgv.Columns(5).DefaultCellStyle.Format = "#,##0.00" 彙總_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 彙總_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 彙總_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 彙總_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 彙總_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 彙總_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 彙總_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 彙總_dgv.Columns(9).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 彙總_dgv.Columns(0).ReadOnly = True : 彙總_dgv.Columns(1).ReadOnly = True : 彙總_dgv.Columns(2).ReadOnly = True : 彙總_dgv.Columns(3).ReadOnly = True 彙總_dgv.Columns(4).ReadOnly = True : 彙總_dgv.Columns(5).ReadOnly = True : 彙總_dgv.Columns(6).ReadOnly = True : 彙總_dgv.Columns(7).ReadOnly = True End Sub Private Sub Set_費用清單() 明細_dgv.DataSource = Nothing : ds.Clear() 明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 明細_dgv.ColumnHeadersHeight = 25 明細_dgv.AllowUserToAddRows = False 明細_dgv.RowTemplate.Height = 35 ConnOpen() If 全部_ch.Checked = True And 含稅_ch.Checked = False And 非稅_ch.Checked = False Then SQL2 = "" ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = True And 非稅_ch.Checked = False Then SQL2 = " AND (財務流水帳.含稅 = 1)" ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = False And 非稅_ch.Checked = True Then SQL2 = " AND (財務流水帳.含稅 = 0 OR 財務流水帳.含稅 IS NULL)" End If SQL1 = "SELECT 財務流水帳.支付單號, 財務流水帳.項次, 會計科目.會計科目, 財務流水帳.明細 AS 用途, Cast(財務流水帳.零用金 AS money) AS 零用金, Cast(財務流水帳.支票數 AS money) AS 支票, Cast(財務流水帳.收入 AS money) AS 收入, Cast(財務流水帳.支出 AS money) AS 支出, 財務流水帳.備註 AS 票期, 財務流水帳.匯率, 財務流水帳.銀行 AS 幣別, 財務流水帳.類別, 財務流水帳.流水號, 財務流水帳.含稅 FROM 財務流水帳 INNER JOIN 會計科目 ON 財務流水帳.類別 = 會計科目.編號 WHERE (財務流水帳.支付單號 LIKE '" & 收支單號_tb.Text & "') " & SQL2 & " ORDER BY 財務流水帳.項次" CmdSet_For_DGV() : da.Fill(ds) : 明細_dgv.DataSource = ds.Tables(0) : conn.Close() 明細_dgv.Columns(0).Visible = False : 明細_dgv.Columns(1).FillWeight = 80 : 明細_dgv.Columns(2).FillWeight = 250 : 明細_dgv.Columns(3).FillWeight = 400 明細_dgv.Columns(4).Visible = False : 明細_dgv.Columns(5).FillWeight = 120 : 明細_dgv.Columns(6).FillWeight = 165 : 明細_dgv.Columns(7).FillWeight = 165 明細_dgv.Columns(8).FillWeight = 150 : 明細_dgv.Columns(9).FillWeight = 130 : 明細_dgv.Columns(10).FillWeight = 140 : 明細_dgv.Columns(11).Visible = False 明細_dgv.Columns(12).Visible = False : 明細_dgv.Columns(13).FillWeight = 80 明細_dgv.Columns(1).ReadOnly = True : 明細_dgv.Columns(2).ReadOnly = True : 明細_dgv.Columns(9).ReadOnly = True : 明細_dgv.Columns(10).ReadOnly = True 明細_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 明細_dgv.Columns(5).DefaultCellStyle.Format = "#,##0.00" : 明細_dgv.Columns(6).DefaultCellStyle.Format = "#,##0.00" 明細_dgv.Columns(7).DefaultCellStyle.Format = "#,##0.00" 明細_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(9).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(10).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 現1_tb.Text = "0.00" : 出1_tb.Text = "0.00" : 合1_tb.Text = "0.00" : 零1_tb.Text = "0.00" : 支1_tb.Text = "0.00" 零2_tb.Text = "0.00" : 支2_tb.Text = "0.00" : 現2_tb.Text = "0.00" : 出2_tb.Text = "0.00" : 合2_tb.Text = "0.00" 零3_tb.Text = "0.00" : 支3_tb.Text = "0.00" : 現3_tb.Text = "0.00" : 出3_tb.Text = "0.00" : 合3_tb.Text = "0.00" 零4_tb.Text = "0.00" : 支4_tb.Text = "0.00" : 現4_tb.Text = "0.00" : 出4_tb.Text = "0.00" : 合4_tb.Text = "0.00" For i As Integer = 0 To 明細_dgv.Rows.Count - 1 If 明細_dgv.Rows(i).Cells("幣別").Value = "台幣現金" Then 現1_tb.Text = Val(現1_tb.Text) + 明細_dgv.Rows(i).Cells("收入").Value * 明細_dgv.Rows(i).Cells("匯率").Value 出1_tb.Text = Val(出1_tb.Text) + 明細_dgv.Rows(i).Cells("支出").Value * 明細_dgv.Rows(i).Cells("匯率").Value 零1_tb.Text = Val(零1_tb.Text) + 明細_dgv.Rows(i).Cells("零用金").Value * 明細_dgv.Rows(i).Cells("匯率").Value 支1_tb.Text = Val(支1_tb.Text) + 明細_dgv.Rows(i).Cells("支票").Value * 明細_dgv.Rows(i).Cells("匯率").Value End If If 明細_dgv.Rows(i).Cells("幣別").Value = "人民幣現金" Then 現2_tb.Text = Val(現2_tb.Text) + 明細_dgv.Rows(i).Cells("收入").Value : 出2_tb.Text = Val(出2_tb.Text) + 明細_dgv.Rows(i).Cells("支出").Value 零2_tb.Text = Val(零2_tb.Text) + 明細_dgv.Rows(i).Cells("零用金").Value : 支2_tb.Text = Val(支2_tb.Text) + 明細_dgv.Rows(i).Cells("支票").Value End If If 明細_dgv.Rows(i).Cells("幣別").Value = "美金" Then 現3_tb.Text = Val(現3_tb.Text) + 明細_dgv.Rows(i).Cells("收入").Value : 出3_tb.Text = Val(出3_tb.Text) + 明細_dgv.Rows(i).Cells("支出").Value 零3_tb.Text = Val(零3_tb.Text) + 明細_dgv.Rows(i).Cells("零用金").Value : 支3_tb.Text = Val(支3_tb.Text) + 明細_dgv.Rows(i).Cells("支票").Value End If If 明細_dgv.Rows(i).Cells("幣別").Value = "印尼盾" Then 現4_tb.Text = Val(現4_tb.Text) + 明細_dgv.Rows(i).Cells("收入").Value : 出4_tb.Text = Val(出4_tb.Text) + 明細_dgv.Rows(i).Cells("支出").Value 零4_tb.Text = Val(零4_tb.Text) + 明細_dgv.Rows(i).Cells("零用金").Value : 支4_tb.Text = Val(支4_tb.Text) + 明細_dgv.Rows(i).Cells("支票").Value End If Next i 合1_tb.Text = Val(零1_tb.Text) + Val(現1_tb.Text) - Val(出1_tb.Text) : 合2_tb.Text = Val(零2_tb.Text) + Val(現2_tb.Text) - Val(出2_tb.Text) 合3_tb.Text = Val(零3_tb.Text) + Val(現3_tb.Text) - Val(出3_tb.Text) : 合4_tb.Text = Val(零4_tb.Text) + Val(現4_tb.Text) - Val(出4_tb.Text) If CLng(合1_tb.Text) >= 0 Then : 合1_tb.ForeColor = Color.Black : Else : 合1_tb.ForeColor = Color.Red : End If If CLng(合2_tb.Text) >= 0 Then : 合2_tb.ForeColor = Color.Black : Else : 合2_tb.ForeColor = Color.Red : End If If CLng(合3_tb.Text) >= 0 Then : 合3_tb.ForeColor = Color.Black : Else : 合3_tb.ForeColor = Color.Red : End If If CLng(合4_tb.Text) >= 0 Then : 合4_tb.ForeColor = Color.Black : Else : 合4_tb.ForeColor = Color.Red : End If 現1_tb.Text = Strings.Format(Val(現1_tb.Text), "#,##0.00") : 出1_tb.Text = Strings.Format(Val(出1_tb.Text), "#,##0.00") : 合1_tb.Text = Strings.Format(Val(合1_tb.Text), "#,##0.00") 零1_tb.Text = Strings.Format(Val(零1_tb.Text), "#,##0.00") : 支1_tb.Text = Strings.Format(Val(支1_tb.Text), "#,##0.00") 零2_tb.Text = Strings.Format(Val(零2_tb.Text), "#,##0.00") : 支2_tb.Text = Strings.Format(Val(支2_tb.Text), "#,##0.00") : 現2_tb.Text = Strings.Format(Val(現2_tb.Text), "#,##0.00") 出2_tb.Text = Strings.Format(Val(出2_tb.Text), "#,##0.00") : 合2_tb.Text = Strings.Format(Val(合2_tb.Text), "#,##0.00") 零3_tb.Text = Strings.Format(Val(零3_tb.Text), "#,##0.00") : 支3_tb.Text = Strings.Format(Val(支3_tb.Text), "#,##0.00") : 現3_tb.Text = Strings.Format(Val(現3_tb.Text), "#,##0.00") 出3_tb.Text = Strings.Format(Val(出3_tb.Text), "#,##0.00") : 合3_tb.Text = Strings.Format(Val(合3_tb.Text), "#,##0.00") 零4_tb.Text = Strings.Format(Val(零4_tb.Text), "#,##0.00") : 支4_tb.Text = Strings.Format(Val(支4_tb.Text), "#,##0.00") : 現4_tb.Text = Strings.Format(Val(現4_tb.Text), "#,##0.00") 出4_tb.Text = Strings.Format(Val(出4_tb.Text), "#,##0.00") : 合4_tb.Text = Strings.Format(Val(合4_tb.Text), "#,##0.00") End Sub Private Sub 日期格式() If 會計月_ch.Checked = True Then '-------------日期一---------------------------------------------------------------------------------------- DTP = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 開始日期_dtp.Value = DTP 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(-1) DTP = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "26" : 開始日期_dtp.Value = DTP '-------------日期二---------------------------------------------------------------------------------------- DTP = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 8) & "25" : 結束日期_dtp.Value = DTP Else '-------------日期一---------------------------------------------------------------------------------------- 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(1) DTP = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 開始日期_dtp.Value = DTP '-------------日期二---------------------------------------------------------------------------------------- DTP = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 結束日期_dtp.Value = DTP 結束日期_dtp.Value = 結束日期_dtp.Value.AddMonths(1) : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(-1) End If End Sub Private Sub 匯率() ConnOpen() SQL1 = "SELECT 中心匯率, 美金匯率, 印尼匯率 FROM 歷史匯率表 WHERE (年 LIKE '" & Strings.Left(Strings.Format(申請日期_dtp.Value, "yyyyMMdd"), 4) & "%') AND (月 LIKE '" & Strings.Mid(Strings.Format(申請日期_dtp.Value, "yyyyMMdd"), 5, 2) & "%')" cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader If dr.Read() Then 人民幣匯率_tb.Text = dr("中心匯率").ToString : 美金匯率_tb.Text = dr("美金匯率").ToString : 印尼匯率_tb.Text = dr("印尼匯率").ToString : conn.Close() : dr.Close() Else conn.Close() : dr.Close() : 匯率修改.Close() : 匯率修改.Show() : 匯率修改.BringToFront() End If End Sub Private Sub 營運費用支付單一覽表_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True DTP = Strings.Left(Strings.Format(Today(), "yyyy/MM/dd"), 8) & "01" 匯率() : 開始日期_dtp.Value = DTP : 結束日期_dtp.Value = Today() 日期格式() : 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(-1) : 彙總_dgv.Visible = False : 明細_rb.Checked = True End Sub Dim 已超出 As Boolean Private Sub 明細_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 明細_dgv.MouseUp 'If 明細_dgv.SelectedCells.Count = 1 Then : MsgBox(明細_dgv.SelectedCells(0).ColumnIndex & " " & 明細_dgv.SelectedCells(0).RowIndex) : End If If 明細_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If If 明細_dgv.SelectedCells.Count > 0 Then If 明細_dgv.SelectedCells(0).ColumnIndex >= 4 And 明細_dgv.SelectedCells(0).ColumnIndex <= 7 Then If 已超出 = False Then Dim x As Double = 0 For i As Integer = 0 To 明細_dgv.SelectedCells.Count - 1 x += Val(明細_dgv.Rows(明細_dgv.SelectedCells.Item(i).RowIndex).Cells(明細_dgv.SelectedCells.Item(i).ColumnIndex).Value) Next i : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0") Else : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") : End If Else : 已超出 = True : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") End If End If End Sub Private Sub 彙總_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 彙總_dgv.MouseUp 'If 彙總_dgv.SelectedCells.Count = 1 Then : MsgBox(彙總_dgv.SelectedCells(0).ColumnIndex & " " & 彙總_dgv.SelectedCells(0).RowIndex) : End If If 彙總_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If If 彙總_dgv.SelectedCells.Count > 0 Then If 彙總_dgv.SelectedCells(0).ColumnIndex >= 4 And 彙總_dgv.SelectedCells(0).ColumnIndex <= 7 Then If 已超出 = False Then Dim x As Double = 0 For i As Integer = 0 To 彙總_dgv.SelectedCells.Count - 1 x += Val(彙總_dgv.Rows(彙總_dgv.SelectedCells.Item(i).RowIndex).Cells(彙總_dgv.SelectedCells.Item(i).ColumnIndex).Value) Next i : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0") Else : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") : End If Else : 已超出 = True : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") End If End If End Sub Private Sub DataGridView4_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 收支單_dgv.CellClick If e.RowIndex = -1 Then : Else 收支單號_tb.Text = 收支單_dgv(0, e.RowIndex).Value.ToString : TextBox13.Text = 收支單_dgv(6, e.RowIndex).Value.ToString 申請人_tb.Text = 收支單_dgv(1, e.RowIndex).Value.ToString : 申請日期_dtp.Value = 收支單_dgv(2, e.RowIndex).Value.ToString 審核人_tb.Text = 收支單_dgv(3, e.RowIndex).Value.ToString : 審核日期_dtp.Value = 收支單_dgv(4, e.RowIndex).Value.ToString TextBox14.Text = 收支單_dgv(5, e.RowIndex).Value.ToString Set_費用清單() End If End Sub Private Sub DataGridView2_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 彙總_dgv.RowPostPaint Dim linePen As New Pen(Color.Blue, 2) : Dim linePen1 As New Pen(Color.Red, 2) : Dim linePen2 As New Pen(Color.Green, 2) If e.RowIndex = 彙總_dgv.Rows.Count - 1 Then Exit Sub Else If 彙總_dgv(0, e.RowIndex).Value.ToString <> 彙總_dgv(0, e.RowIndex + 1).Value.ToString Then Dim startX As Integer = IIf(彙總_dgv.RowHeadersVisible, 彙總_dgv.RowHeadersWidth, 0) Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1 Dim endX As Integer = startX + 彙總_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 彙總_dgv.HorizontalScrollingOffset e.Graphics.DrawLine(linePen, startX, startY, endX, startY) Exit Sub End If If 彙總_dgv(8, e.RowIndex).Value.ToString <> 彙總_dgv(8, e.RowIndex + 1).Value.ToString Then Dim startX As Integer = IIf(彙總_dgv.RowHeadersVisible, 彙總_dgv.RowHeadersWidth, 0) Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1 Dim endX As Integer = startX + 彙總_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 彙總_dgv.HorizontalScrollingOffset e.Graphics.DrawLine(linePen2, startX, startY, endX, startY) Exit Sub End If If 彙總_dgv(1, e.RowIndex).Value.ToString <> 彙總_dgv(1, e.RowIndex + 1).Value.ToString Then Dim startX As Integer = IIf(彙總_dgv.RowHeadersVisible, 彙總_dgv.RowHeadersWidth, 0) Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1 Dim endX As Integer = startX + 彙總_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 彙總_dgv.HorizontalScrollingOffset e.Graphics.DrawLine(linePen1, startX, startY, endX, startY) Exit Sub End If End If End Sub Private Sub 全部_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 全部_ch.Click 全部_ch.Checked = True : 含稅_ch.Checked = False : 非稅_ch.Checked = False : Set_費用清單() : Set_清單2() : 彙總計算() End Sub Private Sub 含稅_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 含稅_ch.Click 全部_ch.Checked = False : 含稅_ch.Checked = True : 非稅_ch.Checked = False : Set_費用清單() : Set_清單2() : 彙總計算() End Sub Private Sub 非稅_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 非稅_ch.Click 全部_ch.Checked = False : 含稅_ch.Checked = False : 非稅_ch.Checked = True : Set_費用清單() : Set_清單2() : 彙總計算() End Sub Private Sub 當日_tb_Click(sender As Object, e As EventArgs) Handles 當日_tb.Click DTP = Strings.Format(Today(), "yyyy/MM/dd") 開始日期_dtp.Value = DTP : 結束日期_dtp.Value = DTP End Sub Private Sub B當月_tb_Click(sender As Object, e As EventArgs) Handles 當月_tb.Click DTP = Strings.Left(Strings.Format(Today(), "yyyy/MM/dd"), 8) & "01" 開始日期_dtp.Value = DTP : 結束日期_dtp.Value = Today() End Sub Private Sub 彙總計算() If 明細_rb.Checked = False And 彙總_rb.Checked = True Then 現1_tb.Text = "0.00" : 出1_tb.Text = "0.00" : 合1_tb.Text = "0.00" : 零1_tb.Text = "0.00" : 支1_tb.Text = "0.00" 零2_tb.Text = "0.00" : 支2_tb.Text = "0.00" : 現2_tb.Text = "0.00" : 出2_tb.Text = "0.00" : 合2_tb.Text = "0.00" 零3_tb.Text = "0.00" : 支3_tb.Text = "0.00" : 現3_tb.Text = "0.00" : 出3_tb.Text = "0.00" : 合3_tb.Text = "0.00" 零4_tb.Text = "0.00" : 支4_tb.Text = "0.00" : 現4_tb.Text = "0.00" : 出4_tb.Text = "0.00" : 合4_tb.Text = "0.00" For i As Integer = 0 To 彙總_dgv.Rows.Count - 1 If 彙總_dgv.Rows(i).Cells("幣別").Value = "台幣現金" Then If 彙總_dgv.Rows(i).Cells("主項").Value <> "上月結存" Then 現1_tb.Text = Val(現1_tb.Text) + 彙總_dgv.Rows(i).Cells("收入").Value : 出1_tb.Text = Val(出1_tb.Text) + 彙總_dgv.Rows(i).Cells("支出").Value 零1_tb.Text = Val(零1_tb.Text) + 彙總_dgv.Rows(i).Cells("零用金").Value : 支1_tb.Text = Val(支1_tb.Text) + 彙總_dgv.Rows(i).Cells("支票").Value End If End If If 彙總_dgv.Rows(i).Cells("幣別").Value = "人民幣現金" Then If 彙總_dgv.Rows(i).Cells("主項").Value <> "上月結存" Then 現2_tb.Text = Val(現2_tb.Text) + 彙總_dgv.Rows(i).Cells("收入").Value : 出2_tb.Text = Val(出2_tb.Text) + 彙總_dgv.Rows(i).Cells("支出").Value 零2_tb.Text = Val(零2_tb.Text) + 彙總_dgv.Rows(i).Cells("零用金").Value : 支2_tb.Text = Val(支2_tb.Text) + 彙總_dgv.Rows(i).Cells("支票").Value End If End If If 彙總_dgv.Rows(i).Cells("幣別").Value = "美金" Then If 彙總_dgv.Rows(i).Cells("主項").Value <> "上月結存" Then 現3_tb.Text = Val(現3_tb.Text) + 彙總_dgv.Rows(i).Cells("收入").Value : 出3_tb.Text = Val(出3_tb.Text) + 彙總_dgv.Rows(i).Cells("支出").Value 零3_tb.Text = Val(零3_tb.Text) + 彙總_dgv.Rows(i).Cells("零用金").Value : 支3_tb.Text = Val(支3_tb.Text) + 彙總_dgv.Rows(i).Cells("支票").Value End If End If If 彙總_dgv.Rows(i).Cells("幣別").Value = "印尼盾" Then If 彙總_dgv.Rows(i).Cells("主項").Value <> "上月結存" Then 現4_tb.Text = Val(現4_tb.Text) + 彙總_dgv.Rows(i).Cells("收入").Value : 出4_tb.Text = Val(出4_tb.Text) + 彙總_dgv.Rows(i).Cells("支出").Value 零4_tb.Text = Val(零4_tb.Text) + 彙總_dgv.Rows(i).Cells("零用金").Value : 支4_tb.Text = Val(支4_tb.Text) + 彙總_dgv.Rows(i).Cells("支票").Value End If End If Next i 合1_tb.Text = Val(零1_tb.Text) + Val(現1_tb.Text) - Val(出1_tb.Text) : 合2_tb.Text = Val(零2_tb.Text) + Val(現2_tb.Text) - Val(出2_tb.Text) 合3_tb.Text = Val(零3_tb.Text) + Val(現3_tb.Text) - Val(出3_tb.Text) : 合4_tb.Text = Val(零4_tb.Text) + Val(現4_tb.Text) - Val(出4_tb.Text) If CLng(合1_tb.Text) >= 0 Then : 合1_tb.ForeColor = Color.Black : Else : 合1_tb.ForeColor = Color.Red : End If If CLng(合2_tb.Text) >= 0 Then : 合2_tb.ForeColor = Color.Black : Else : 合2_tb.ForeColor = Color.Red : End If If CLng(合3_tb.Text) >= 0 Then : 合3_tb.ForeColor = Color.Black : Else : 合3_tb.ForeColor = Color.Red : End If If CLng(合4_tb.Text) >= 0 Then : 合4_tb.ForeColor = Color.Black : Else : 合4_tb.ForeColor = Color.Red : End If 現1_tb.Text = Strings.Format(Val(現1_tb.Text), "#,##0.00") : 出1_tb.Text = Strings.Format(Val(出1_tb.Text), "#,##0.00") : 合1_tb.Text = Strings.Format(Val(合1_tb.Text), "#,##0.00") 零1_tb.Text = Strings.Format(Val(零1_tb.Text), "#,##0.00") : 支1_tb.Text = Strings.Format(Val(支1_tb.Text), "#,##0.00") 零2_tb.Text = Strings.Format(Val(零2_tb.Text), "#,##0.00") : 支2_tb.Text = Strings.Format(Val(支2_tb.Text), "#,##0.00") : 現2_tb.Text = Strings.Format(Val(現2_tb.Text), "#,##0.00") 出2_tb.Text = Strings.Format(Val(出2_tb.Text), "#,##0.00") : 合2_tb.Text = Strings.Format(Val(合2_tb.Text), "#,##0.00") 零3_tb.Text = Strings.Format(Val(零3_tb.Text), "#,##0.00") : 支3_tb.Text = Strings.Format(Val(支3_tb.Text), "#,##0.00") : 現3_tb.Text = Strings.Format(Val(現3_tb.Text), "#,##0.00") 出3_tb.Text = Strings.Format(Val(出3_tb.Text), "#,##0.00") : 合3_tb.Text = Strings.Format(Val(合3_tb.Text), "#,##0.00") 零4_tb.Text = Strings.Format(Val(零4_tb.Text), "#,##0.00") : 支4_tb.Text = Strings.Format(Val(支4_tb.Text), "#,##0.00") : 現4_tb.Text = Strings.Format(Val(現4_tb.Text), "#,##0.00") 出4_tb.Text = Strings.Format(Val(出4_tb.Text), "#,##0.00") : 合4_tb.Text = Strings.Format(Val(合4_tb.Text), "#,##0.00") End If End Sub Private Sub 上個月_bt_Click(sender As Object, e As EventArgs) Handles 上個月_bt.Click If 會計月_ch.Checked = True Then 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1) 開始日期_dtp.Value = 中間日期_dtp.Value 結束日期_dtp.Value = 中間日期_dtp.Value Else 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1) 開始日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1) 結束日期_dtp.Value = 中間日期_dtp.Value End If 日期格式() End Sub Private Sub 下個月_bt_Click(sender As Object, e As EventArgs) Handles 下個月_bt.Click If 會計月_ch.Checked = True Then 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(1) 開始日期_dtp.Value = 中間日期_dtp.Value 結束日期_dtp.Value = 中間日期_dtp.Value Else 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(1) 開始日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1) 結束日期_dtp.Value = 中間日期_dtp.Value End If 日期格式() End Sub Private Sub 開始日期_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 開始日期_dtp.ValueChanged Set_清單1() : Set_清單2() : 彙總計算() End Sub Private Sub 結束日期_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 結束日期_dtp.ValueChanged Set_清單1() : Set_清單2() : 彙總計算() End Sub Private Sub 會計月_CheckedChanged(sender As Object, e As EventArgs) Handles 會計月_ch.Click 會計月_ch.Checked = True : 一般月_ch.Checked = False : 日期格式() End Sub Private Sub 一般月_CheckedChanged(sender As Object, e As EventArgs) Handles 一般月_ch.Click 會計月_ch.Checked = False : 一般月_ch.Checked = True : 日期格式() End Sub Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles 明細_rb.Click 明細_dgv.Visible = True : 彙總_dgv.Visible = False : 明細_rb.Checked = True : 彙總_rb.Checked = False 現1_tb.Text = "0.00" : 出1_tb.Text = "0.00" : 合1_tb.Text = "0.00" : 零1_tb.Text = "0.00" : 支1_tb.Text = "0.00" : 收支單_dgv.Enabled = True End Sub Private Sub RadioButton2_CheckedChanged(sender As Object, e As EventArgs) Handles 彙總_rb.Click 明細_dgv.Visible = False : 彙總_dgv.Visible = True : 明細_rb.Checked = False : 彙總_rb.Checked = True 收支單號_tb.Text = "" : 申請人_tb.Text = "" : 審核人_tb.Text = "" : 明細_dgv.DataSource = Nothing : ds.Clear() : 收支單_dgv.Enabled = False 彙總計算() End Sub Private Sub TextBox14_TextChanged(sender As Object, e As EventArgs) Handles TextBox14.TextChanged ConnOpen() SQL1 = "SELECT 簽名檔圖片 FROM GCM主管簽名檔管理 WHERE 圖片流水號 LIKE '" & TextBox14.Text & "'" cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader While dr.Read() = True Dim unused As Byte() = New Byte(-1) {} Dim bytes As Byte() = DirectCast(dr.Item("簽名檔圖片"), Byte()) Dim oStream As New MemoryStream(bytes) PictureBox1.Image = Bitmap.FromStream(oStream) End While conn.Close() PictureBox1.SizeMode = 4 End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 列印_bt.Click xlApp = CType(CreateObject("Excel.Application"), Application) xlBook = xlApp.Workbooks.Add xlApp.DisplayAlerts = True xlBook.Activate() xlSheet = NewMethod(xlBook) xlSheet.Activate() xlApp.Visible = True xlApp.Application.WindowState = xlMaximized xlSheet.Cells(1, 1) = "年度" : xlSheet.Cells(1, 2) = Year(Today) - 1911 If 明細_rb.Checked = True And 彙總_rb.Checked = False Then xlSheet.Cells(1, 3) = "工巧明智能企業有限公司-營運費用收支明細表" xlSheet.Cells(2, 1) = "收款日期" : xlSheet.Cells(2, 2) = "會計科目" : xlSheet.Cells(2, 3) = "客戶或用途" xlSheet.Cells(2, 4) = "零用金" : xlSheet.Cells(2, 5) = "支票" : xlSheet.Cells(2, 6) = "收入" : xlSheet.Cells(2, 7) = "支出" : xlSheet.Cells(2, 8) = "現金餘額" xlSheet.Cells(2, 9) = "票期" For i As Integer = 0 To 明細_dgv.Rows.Count - 1 xlSheet.Cells(i + 3, 1) = 申請日期_dtp.Value : xlSheet.Cells(i + 3, 2) = 明細_dgv.Rows(i).Cells("會計科目").Value xlSheet.Cells(i + 3, 3) = 明細_dgv.Rows(i).Cells("用途").Value : xlSheet.Cells(i + 3, 4) = 明細_dgv.Rows(i).Cells("零用金").Value xlSheet.Cells(i + 3, 5) = 明細_dgv.Rows(i).Cells("支票").Value : xlSheet.Cells(i + 3, 6) = 明細_dgv.Rows(i).Cells("收入").Value xlSheet.Cells(i + 3, 7) = 明細_dgv.Rows(i).Cells("支出").Value : xlSheet.Cells(i + 3, 9) = 明細_dgv.Rows(i).Cells("票期").Value If i = 0 Then xlSheet.Cells(i + 3, 8) = "=D3+F3-G3" Else xlSheet.Cells(i + 3, 8) = "=H" & i + 2 & "+D" & i + 3 & "+F" & i + 3 & "-G" & i + 3 & "" End If With xlApp.Selection .Font.Bold = True End With N1 = i + 3 : N2 = i + 3 Next i xlSheet.Cells(N1 + 1, 3) = "以下空白" : xlSheet.Cells(N1 + 3, 1) = "簽核(點交)" : xlSheet.Cells(N1 + 3, 7) = "製表 : " & 申請人_tb.Text & " - " & 申請日期_dtp.Value xlSheet.Cells(N1 + 2, 4) = "=SUM(D3:D" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 5) = "=SUM(E3:E" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 6) = "=SUM(F3:F" & N1 + 1 & ")" xlSheet.Cells(N1 + 2, 7) = "=SUM(G3:G" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 8) = "=H" & N1 : xlSheet.Cells(N1 + 2, 1) = "合計" AA(xlApp, xlSheet) : BB(xlApp, xlSheet) ElseIf 明細_rb.Checked = False And 彙總_rb.Checked = True Then xlSheet.Cells(1, 3) = "工巧明智能企業有限公司-營運費用收支彙總簡表" xlSheet.Cells(2, 1) = "日期" : xlSheet.Cells(2, 2) = "主項" : xlSheet.Cells(2, 3) = "子項" : xlSheet.Cells(2, 4) = "子細項" : xlSheet.Cells(2, 5) = "零用金" xlSheet.Cells(2, 6) = "支票" : xlSheet.Cells(2, 7) = "收入" : xlSheet.Cells(2, 8) = "支出" : xlSheet.Cells(2, 9) = "現金餘額" For i As Integer = 0 To 彙總_dgv.Rows.Count - 1 xlSheet.Cells(i + 3, 1) = 彙總_dgv.Rows(i).Cells("日期").Value xlSheet.Cells(i + 3, 2) = 彙總_dgv.Rows(i).Cells("主項").Value xlSheet.Cells(i + 3, 3) = 彙總_dgv.Rows(i).Cells("子項").Value xlSheet.Cells(i + 3, 4) = 彙總_dgv.Rows(i).Cells("子細項").Value xlSheet.Cells(i + 3, 5) = 彙總_dgv.Rows(i).Cells("零用金").Value xlSheet.Cells(i + 3, 6) = 彙總_dgv.Rows(i).Cells("支票").Value xlSheet.Cells(i + 3, 7) = 彙總_dgv.Rows(i).Cells("收入").Value xlSheet.Cells(i + 3, 8) = 彙總_dgv.Rows(i).Cells("支出").Value If i = 0 Then xlSheet.Cells(i + 3, 9) = "=E3+G3-H3" Else xlSheet.Cells(i + 3, 9) = "=I" & i + 2 & "+E" & i + 3 & "+G" & i + 3 & "-H" & i + 3 & "" End If With xlApp.Selection .Font.Bold = True End With N1 = i + 3 : N2 = i + 3 Next i xlSheet.Cells(N1 + 1, 2) = "以下空白" : xlSheet.Cells(N1 + 3, 1) = "簽核" : xlSheet.Cells(N1 + 3, 5) = "製表 : " & gUserName & " - " & Today() xlSheet.Cells(N1 + 2, 5) = "=SUM(E3:E" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 6) = "=SUM(F3:F" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 7) = "=SUM(G3:G" & N1 + 1 & ")" xlSheet.Cells(N1 + 2, 8) = "=SUM(H3:H" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 9) = "=I" & N1 : xlSheet.Cells(N1 + 2, 1) = "合計" CC(xlApp, xlSheet) End If xlSheet.PageSetup.PrintArea = "" xlApp.Cells.Select() xlSheet.Range("B1").Select() xlApp.Application.WindowState = xlMinimized xlSheet.Cells.Select() xlApp.ActiveSheet.Protect(DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="0911274990") xlApp.ActiveSheet.EnableSelection = 1 MsgBox("列印完成。") End Sub Private Shared Function NewMethod(xlBook As Workbook) As Worksheet Return CType(xlBook.Worksheets.Add, Worksheet) End Function Private Sub AA(ByVal myExcel As Application, ByVal xlSheet As Worksheet) xlSheet.Cells.Select() With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone End With xlSheet.Columns("A:A").Select : myExcel.Selection.NumberFormatLocal = "m/d;@" With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Range("B1").Select() With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 25 xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = 30 xlSheet.Columns("D:H").Select : myExcel.Selection.ColumnWidth = 10 : myExcel.Selection.NumberFormatLocal = "#,##0;[紅色]-#,##0" xlSheet.Columns("I:I").Select : myExcel.Selection.ColumnWidth = 10 : myExcel.Selection.NumberFormatLocal = "[$-zh-TW]e/m/d;@" xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 25 xlSheet.Range("A2:I2").Select() With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Range("A2:I" & N1 + 2).Select() : myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With myExcel.ActiveWindow.DisplayGridlines = False xlSheet.Rows("3:" & N1 + 2).Select : myExcel.Selection.RowHeight = 20 xlSheet.Rows(N1 + 3 & ":" & N1 + 3).Select : myExcel.Selection.RowHeight = 40 xlSheet.Columns("I:I").Select With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Range("A" & N1 + 2 & ":C" & N1 + 2).Select() : myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True End With xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 25 With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 14 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone End With End Sub Private Sub BB(ByVal myExcel As Application, ByVal xlSheet As Worksheet) Clipboard.SetDataObject(PictureBox1.Image) xlSheet.Range("B" & N2 + 3).Select() myExcel.ActiveSheet.Pictures.Paste.Select myExcel.Selection.ShapeRange.Height = 43 myExcel.Selection.ShapeRange.IncrementTop(3) End Sub Private Sub CC(ByVal myExcel As Application, ByVal xlSheet As Worksheet) xlSheet.Cells.Select() With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone End With xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 8 xlSheet.Columns("B:C").Select : myExcel.Selection.ColumnWidth = 15 xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = 20 xlSheet.Columns("E:I").Select : myExcel.Selection.ColumnWidth = 10 : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00" xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 25 xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 25 xlSheet.Rows("3:" & N1 + 2).Select : myExcel.Selection.RowHeight = 20 xlSheet.Rows(N1 + 3 & ":" & N1 + 3).Select : myExcel.Selection.RowHeight = 40 xlSheet.Rows("2:2").Select With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Range("A1").Select() With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Range("B1").Select() With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Rows("1:1").Select With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 16 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone End With xlSheet.Range("A2:I" & N1 + 2).Select() : myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With xlSheet.Range("A" & N1 + 2 & ":D" & N1 + 2).Select() : myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True End With xlSheet.Columns("E:I").Select : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00" myExcel.ActiveWindow.DisplayGridlines = False End Sub '----------------------滑鼠右鍵-------------------------------------------------------------------------------------------------------------------------------------------------------------------- Private Sub 重新讀取ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 重新讀取ToolStripMenuItem.Click Set_清單1() : Set_清單2() : 彙總計算() End Sub End Class