អត្ថបទ

ឧទាហរណ៍នៃ Excel Macros សរសេរជាមួយ VBA

ឧទាហរណ៍ម៉ាក្រូ Excel សាមញ្ញខាងក្រោមត្រូវបានសរសេរដោយប្រើ VBA 

ពេលវេលាអានប៉ាន់ស្មាន៖ 3 មីទីតូ។

ឧទាហរណ៍ VBA ដោយប្រើអារេ

នីតិវិធីរងខាងក្រោមអានតម្លៃពីក្រឡាក្នុងជួរ A នៃសន្លឹកកិច្ចការសកម្ម រហូតដល់វាជួបក្រឡាទទេ។ តម្លៃត្រូវបានរក្សាទុកក្នុងអារេមួយ។ ឧទាហរណ៍ម៉ាក្រូ Excel ដ៏សាមញ្ញនេះបង្ហាញពីការប្រើប្រាស់៖

  • សេចក្តីប្រកាសអថេរ;
  • អារេថាមវន្ត;
  • វដ្តមួយ។ Do Until;
  • យោងទៅក្រឡានៅក្នុងសន្លឹកកិច្ចការ Excel បច្ចុប្បន្ន;
  • មុខងារ VBA Ubound builtin (ដែលត្រឡប់សន្ទស្សន៍ខ្ពស់បំផុតនៃអារេមួយ) ។
' Sub procedure store values in Column A of the active Worksheet
' into an array
Sub GetCellValues()
Dim iRow As Integer            ' stores the current row number
Dim dCellValues() As Double  ' array to store the cell values
iRow = 1
ReDim dCellValues(1 To 10)
' Do Until loop to extract the value of each cell in column A
' of the active Worksheet, as long as the cell is not blank
Do Until IsEmpty(Cells(iRow, 1))
   ' Check that the dCellValues array is big enough
   ' If not, use ReDim to increase the size of the array by 10
   If UBound(dCellValues) < iRow Then
      ReDim Preserve dCellValues(1 To iRow + 9)
   End If
   ' Store the current cell in the CellValues array
   dCellValues(iRow) = Cells(iRow, 1).Value
   iRow = iRow + 1
Loop
End Sub

នីតិវិធីរក្សាទុកតម្លៃនៅក្នុងជួរ A នៃសន្លឹកកិច្ចការសកម្មក្នុងអារេមួយ ចំណាំថា:

  • វដ្ដ Do Until ស្រង់តម្លៃនៃក្រឡានីមួយៗក្នុងជួរ A នៃសន្លឹកកិច្ចការសកម្មដោយមិនអើពើក្រឡាទទេ
  • លក្ខខណ្ឌ "If UBound(dCellValues) < iRowពិនិត្យថាអារេ dCellValues ​​មានទំហំធំល្មមសម្រាប់ផ្ទុកព័ត៌មាន ប្រសិនបើមិនមានទេ សូមប្រើ ReDim ដើម្បីបង្កើនទំហំអារេដោយ 10
  • ទីបំផុតការអប់រំ​​dCellValues(iRow) = Cells(iRow, 1).Valueរក្សាទុកក្រឡាបច្ចុប្បន្ននៅក្នុងអារេ CellValues

ឧទាហរណ៍ VBA ជាមួយប្រតិបត្តិការគណិតវិទ្យា

នីតិវិធីរងខាងក្រោមអានតម្លៃពីជួរ A នៃសន្លឹកកិច្ចការដែលមានឈ្មោះថា "សន្លឹក 2" ហើយអនុវត្តប្រតិបត្តិការនព្វន្ធលើតម្លៃ។ តម្លៃលទ្ធផលត្រូវបានបោះពុម្ពក្នុងជួរឈរ A នៃសន្លឹកកិច្ចការបច្ចុប្បន្នសកម្ម។

ម៉ាក្រូនេះបង្ហាញពី៖

ព្រឹត្តិប័ត្រព័ត៌មានច្នៃប្រឌិត
កុំខកខានព័ត៌មានសំខាន់បំផុតស្តីពីការច្នៃប្រឌិត។ ចុះឈ្មោះដើម្បីទទួលបានពួកគេតាមអ៊ីមែល។
  • សេចក្តីប្រកាសអថេរ;
  • វត្ថុ Excel (ជាពិសេសការប្រើពាក្យគន្លឹះកំណត់ និងរបៀបចូលប្រើវត្ថុ 'ជួរឈរ' ពីវត្ថុ 'សន្លឹក');
  • វដ្តមួយ។ Do Until;
  • ចូលប្រើសន្លឹកកិច្ចការ និងជួរក្រឡានៅក្នុងសៀវភៅការងារ Excel បច្ចុប្បន្ន។
' Sub procedure to loop through the values in Column A of the Worksheet
' "Sheet2", perform arithmetic operations on each value, and write the
' result into Column A of the current Active Worksheet ("Sheet1")
Sub Transfer_ColA()
Dim i As Integer
Dim Col As Range
Dim dVal As Double
' Set the variable 'Col' to be Column A of Sheet 2
Set Col = Sheets("Sheet2").Columns("A")
i = 1
' Loop through each cell of the column 'Col' until
' a blank cell is encountered
Do Until IsEmpty(Col.Cells(i))
   ' Apply arithmetic operations to the value of the current cell
   dVal = Col.Cells(i).Value * 2 + 1
   ' The command below copies the result into Column A
   ' of the current Active Worksheet - no need to specify
   ' the Worksheet name as it is the active Worksheet.
   Cells(i, 1) = dVal
   i = i + 1
Loop
End Sub

ឧទាហរណ៍ VBA ជាមួយនឹងការកត់ត្រាកាលបរិច្ឆេទកែប្រែ

ចូរយើងសរសេរម៉ាក្រូ VBA ដ៏សាមញ្ញមួយដែលដំណើរការនៅពេលដែលក្រឡានៅក្នុងជួរជាក់លាក់នៃសន្លឹករបស់យើងត្រូវបានធ្វើបច្ចុប្បន្នភាព។ ឧបមាថាអ្នកចង់តាមដានការផ្លាស់ប្តូរនៅក្នុងជួរឈរ B (B4 ដល់ B11) ហើយកត់ត្រាកាលបរិច្ឆេទនិងពេលវេលានៃការផ្លាស់ប្តូរនៅក្នុងជួរឈរ A ។
ចូរ​បន្ត​ដូច​នេះ៖

  • នៅក្នុងផ្ទាំង។ Developer ចុចលើជម្រើស "Visual Basic"ដើម្បីបើកកម្មវិធីនិពន្ធ VBA ។
  • នៅក្នុងកម្មវិធីនិពន្ធ VBA ចុចពីរដងលើកម្មវិធីនិពន្ធកូដដែលទាក់ទងនឹង Sheet2។
  • ជ្រើសរើសសន្លឹកកិច្ចការពីផ្ទាំងខាងស្តាំ (ឬខាងឆ្វេង) ហើយជ្រើសរើសជម្រើសផ្លាស់ប្តូរ។
  • បន្ថែមលេខកូដ VBA៖
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B1:B10")) Is Nothing Then
        Target.Range("A1:A1").Value = Now
    End If
End Sub

រក្សាទុកសៀវភៅការងារដោយបើកម៉ាក្រូ (ឧទាហរណ៍ ជាឯកសារ .xlsm)។


ឥឡូវនេះ រាល់ពេលដែលយើងធ្វើបច្ចុប្បន្នភាពក្រឡាក្នុងជួរ B (ពីជួរទី 1 ដល់ជួរទី 10) ក្រឡាក្នុងជួរ A នឹងបង្ហាញកាលបរិច្ឆេទ និងពេលវេលាបច្ចុប្បន្នដោយស្វ័យប្រវត្តិ។

Ercole Palmeri

ព្រឹត្តិប័ត្រព័ត៌មានច្នៃប្រឌិត
កុំខកខានព័ត៌មានសំខាន់បំផុតស្តីពីការច្នៃប្រឌិត។ ចុះឈ្មោះដើម្បីទទួលបានពួកគេតាមអ៊ីមែល។

អត្ថបទថ្មីៗ

Veeam បង្ហាញពីការគាំទ្រដ៏ទូលំទូលាយបំផុតសម្រាប់ ransomware ចាប់ពីការការពាររហូតដល់ការឆ្លើយតប និងការស្តារឡើងវិញ

Coveware ដោយ Veeam នឹងបន្តផ្តល់សេវាកម្មឆ្លើយតបឧប្បត្តិហេតុជំរិតទារប្រាក់តាមអ៊ីនធឺណិត។ Coveware នឹងផ្តល់ជូននូវសមត្ថភាពផ្នែកកោសល្យវិច្ច័យ និងដំណោះស្រាយ…

23 ខែមេសា 2024

បដិវត្តន៍បៃតង និងឌីជីថល៖ របៀបដែលការថែទាំព្យាករណ៍កំពុងផ្លាស់ប្តូរឧស្សាហកម្មប្រេង និងឧស្ម័ន

ការថែទាំតាមទស្សន៍ទាយកំពុងធ្វើបដិវត្តវិស័យប្រេង និងឧស្ម័ន ជាមួយនឹងវិធីសាស្រ្តប្រកបដោយភាពច្នៃប្រឌិត និងសកម្មចំពោះការគ្រប់គ្រងរោងចក្រ។…

22 ខែមេសា 2024

និយតករប្រឆាំងការទុកចិត្តរបស់ចក្រភពអង់គ្លេសបង្កើនការជូនដំណឹង BigTech លើ GenAI

CMA របស់ចក្រភពអង់គ្លេសបានចេញការព្រមានអំពីអាកប្បកិរិយារបស់ Big Tech នៅក្នុងទីផ្សារបញ្ញាសិប្បនិម្មិត។ នៅទីនោះ…

18 ខែមេសា 2024

Casa Green: បដិវត្តថាមពលសម្រាប់អនាគតប្រកបដោយនិរន្តរភាពនៅប្រទេសអ៊ីតាលី

ក្រឹត្យ "Case Green" ដែលបង្កើតដោយសហភាពអឺរ៉ុប ដើម្បីបង្កើនប្រសិទ្ធភាពថាមពលនៃអគារ បានបញ្ចប់ដំណើរការនីតិប្បញ្ញត្តិរបស់ខ្លួនជាមួយនឹង…

18 ខែមេសា 2024

អានការច្នៃប្រឌិតជាភាសារបស់អ្នក។

ព្រឹត្តិប័ត្រព័ត៌មានច្នៃប្រឌិត
កុំខកខានព័ត៌មានសំខាន់បំផុតស្តីពីការច្នៃប្រឌិត។ ចុះឈ្មោះដើម្បីទទួលបានពួកគេតាមអ៊ីមែល។

តាមយើង

ស្លាក

សោធនអាហារកិច្ច ការវាយប្រហារតាមអ៊ីនធឺណិត blockchain chatbot ។ ជជែក gpt cloud cloud computing ទីផ្សារមាតិកា ការវាយប្រហារតាមអ៊ីនធឺណិត សន្តិសុខ​តាម​ប្រព័ន្ធ​អ៊ីនធឺណិត សិទ្ធិអ្នកប្រើប្រាស់ eCommerce អេណា ព្រឹត្តិការណ៍ច្នៃប្រឌិត gianfranco fedele ហ្គូហ្គល ឥទ្ធិពល ការបង្កើតថ្មី ការច្នៃប្រឌិតហិរញ្ញវត្ថុ ការច្នៃប្រឌិតកើនឡើង។ ការច្នៃប្រឌិតផ្នែកវេជ្ជសាស្រ្ត និរន្តរភាពនៃការបង្កើតថ្មី។ ការច្នៃប្រឌិតបច្ចេកវិទ្យា។ ភាពវៃឆ្លាតសិប្បនិម្មិត។ IOT រៀនម៉ាស៊ីន metaverse ក្រុមហ៊ុន Microsoft nft គ្មានមនុស្សនៅក្នុងរង្វិលជុំ កម្មវិធី PHP ឆ្លើយតប មនុស្សយន្ត SEO SERP ផ្នែកទន់ ការរចនាសូហ្វវែរ ការអភិវឌ្ឍកម្មវិធី វិស្វកម្មកម្មវិធី និរន្តរភាព ចាប់ផ្តើម ថាលស៍ ឯកសារបង្រៀន VPN web3