Giảm kích thước của 1 file CAD


Mình nghĩ có nhiều cách để giảm kích thước của 1 file CAD. Mình thấy cách này của mình cũng có hiểu quả nhiều nên giới thiệu để các bạn cùng biết. Dùng lệnh purge sẽ hiện lên cửa sổ như sau:

purge

Sau đó xóa những phần không cần thiết trong file của bạn.

Advertisements

Comments off

Một số maccro thông dụng trong excel Phần 1


Mình có sử dụng một số macro thông dụng trong excel, mà mình thấy rất là hữu ích trong việc giảm kích thước của file excel, hiển thị các sheet ẩn mà mình không sử dụng đến lên và xóa bỏ nó đi!

// Hien thi tat ca cac Sheet an trong 1 file excel

Sub UnhideAllSheets()

   Dim wsSheet As Worksheet

   For Each wsSheet In ActiveWorkbook.Worksheets

       wsSheet.Visible = xlSheetVisible

   Next wsSheet

End Sub

 

//Hien thi cac Sheet trong excel (minh chon sheet)

Sub UnhideSomeSheets()

   Dim sSheetName As String

   Dim sMessage As String

   Dim Msgres As VbMsgBoxResult

   For Each wsSheet In ActiveWorkbook.Worksheets

       If wsSheet.Visible = xlSheetHidden Then

           sSheetName = wsSheet.Name

           sMessage = “Ban co muon Unhide sheet nay khong ?” _

             & vbNewLine & sSheetName

           Msgres = MsgBox(sMessage, vbYesNo)

           If Msgres = vbYes Then wsSheet.Visible = xlSheetVisible

       End If

   Next wsSheet

End Sub

 

//Paste Value

Sub PasteVal()

    Selection.PasteSpecial Paste:=xlValues

End Sub

Comments off

Change Text to UPPERCASE or Proper Case/ Chuyển text thành chữ Hoa hoặc viết hoa chữ cái đầu


Code VBA

Sub ConvertCase()
Dim rAcells As Range, rLoopCells As Range
Dim lReply As Long
‘Set variable to needed cells
If Selection.Cells.Count = 1 Then
Set rAcells = ActiveSheet.UsedRange
Else
Set rAcells = Selection
End If
On Error Resume Next ‘In case of NO text constants.
‘Set variable to all text constants
Set rAcells = rAcells.SpecialCells(xlCellTypeConstants, xlTextValues)
If rAcells Is Nothing Then
MsgBox “Could not find any text.”
On Error GoTo 0
Exit Sub
End If
lReply = MsgBox(“Select ‘Yes’ for UPPER CASE or ‘No’ for Proper Case.”, _
vbYesNoCancel, “OzGrid.com”)
If lReply = vbCancel Then Exit Sub
If lReply = vbYes Then ‘ Convert to Upper Case
For Each rLoopCells In rAcells
rLoopCells = StrConv(rLoopCells, vbUpperCase)
Next rLoopCells
Else ‘ Convert to Proper Case
For Each rLoopCells In rAcells
rLoopCells = StrConv(rLoopCells, vbProperCase)
Next rLoopCells
End If
End Sub

Sử dụng như một Macro thông thường trong excel, Chọn dữ liệu cần chuyển sau đó gọi macro convertCase()

Comments off

CODE Tự động chuyển chữ thường thành chữ HOA khi nhập dữ liệu trong Excel


Private Sub Worksheet_Change(ByVal Target As Range)
””””””””””””””””””””””
‘Forces text to Proper case for the range A1:B20 Viet hoa chu cai dau tien
””””””””””””””””””””””
If Target.Cells.Count > 1 Or Target.HasFormula Then Exit Sub
On Error Resume Next
If Not Intersect(Target, Range(“A1:B20”)) Is Nothing Then
Application.EnableEvents = False
Target = StrConv(Target, vbUpperCase)
‘Target.Value = LCase(Target.Value)
Application.EnableEvents = True
End If
On Error GoTo 0
End Sub

Giải thích:

Tên hàm: StrConv
StrConv(string, conversion, LCID)
Chuyển chuỗi string sang một định dạng khác (ví dụ Unicode)
Tham số:
string
Chuỗi cần chuyển
conversion
Chế độ muốn chuyển
Ghi chú:
Dung cho tham so conversion
vbUpperCase = 1 Chuyển sang chữ hoa
vbLowerCase = 2 Chuyển sang chữ thường
vbProperCase 3 Chuyển sang chế độ viết hoa chữ cái đầu tiên của mỗi từ
vbWide* = 4* Chuyển từ narrow (single-byte) characters sang wide (double-byte) characters.
vbNarrow* = 8* Chuyển từ wide (double-byte) characters sang narrow (single-byte) characters.
vbKatakana** = 16** Chuyển từ Hiragana characters sang Katakana characters.
vbHiragana** = 32** Chuyển từ Katakana characters sang Hiragana characters.
vbUnicode = 64 Chuyển sang chế độ Unicode sử dụng code mặc định của hệ thống
vbFromUnicode = 128 
Chuyển từ Unicode sang mã mặc định của hệ thống

Application.EnableEvents thường dùng cho các sự kiện, tiêu biểu là sự kiện WorksheetChange
Ví dụ:
– Bạn muốn nhập số 1 vào cell A1 thì lập tức A1 biến thành 10 (chẳng hạn). Hay nói đúng hơn là bạn muốn kết quả = 10 lần giá trị nhập
– Trường hợp này ta dùng sự kiện WorksheetChange với Target = Range(“A1”)
– Code viết cũng đơn giản, kiểu như Target = Target*10 (đúng chứ?)
– Thế nhưng ngay khi ta gõ số 1 thì code biến số 1 thành số 10 (bằng phép nhân), đồng thời nó cũng nhận biết được có sự thay đổi trên cell A1 nên code lại chạy và lại biến số 10 thành số 100 (nhân 10 tiếp) —> Cứ thế chẳng biết đến khi nào mới dừng
—————–
Vậy: Đối với trường hợp dùng sự kiện WorksheetChange thực hiện thay đổi ngay tại Target (là cell ta nhập) thì BẮT BUỘC phải có cặp Application.EnableEvents = FALSE ở đầu code và Application.EnableEvents = TRUE ở cuối code. Mục đích để “bắt” sự kiện change 1 lần duy nhất —> Nhập số 1, biến thành 10 rồi thôi (hổng nhân nữa)
—————-

Comments off

Tạo riêng một thanh công cụ cho riêng một bảng tính cụ thể


Bạn đã từng tạo ra thanh công cụ riêng cho mình? Bạn có thấy rằng, thanh công cụ này luôn luôn được nạp vào Excel, và luôn hiển thị, với bất kỳ bảng tính nào, với bất kỳ người sử dụng nào? Có bao giờ, bạn muốn rằng, thanh công cụ tự tạo này chỉ được hiển thị với một bảng tính cụ thể nào đó mà thôi không?

Ví dụ, bạn tự tạo ra một thanh công cụ có chứa những nút dùng để hỗ trợ việc nhập công thức và xử lý bảng (những dấu =, +, -, *, /, những nút dùng để xóa hàng, xóa cột, v.v…), tạm gọi là thanh công cụ A, phục vụ riêng cho bảng tính B. Và bạn muốn, làm thế nào để chỉ khi bạn mở bảng tính B, thì mới thấy thanh công cụ A của bạn, còn mở bảng tính khác, thì chỉ thấy những thanh công cụ mặc định của Excel? Thậm chí trong cùng một cửa sổ Excel, nhưng khi bạn kích hoạt bảng tính B, thì mới thấy thanh công cụ A, còn khi nhấn Ctrl+Tab để chuyển sang bảng tính khác, thì thanh công cụ A này sẽ biến mất?

Thiết nghĩ, chắc hẳn đã có lúc bạn muốn điều tôi vừa nói. Vì nó giúp cho thanh công cụ của Excel luôn gọn gàng, ngăn nắp (luôn là thanh công cụ mặc định của Excel), nếu không phải là bạn, mà là người khác, thì không có gì bỡ ngỡ với thanh công cụ lạ hoắc; hoặc là, chỉ khi nào mở bảng tính B ra, thì mới cần đến thanh công cụ A, còn bình thường thì chẳng cần…

Việc này, không có gì khó. Bạn chỉ cần chèn một đoạn code đơn giản vào trong “Private module” của bảng tính.

Trước hết, bạn hãy tạo cho riêng mình một thanh công cụ. Đặt tên cho nó là “MyCustomToolbar” chẳng hạn.

Tiếp theo, bạn nhấn Alt+F11 để mở cửa sổ Microsoft Visual Basic, nhấn đúp vào This workbook trong khung Project. Bạn cũng có thể làm nhanh việc này bằng cách nhấn nút phải chuột vào cái biểu tượng Excel bé tí nằm ngay bên trái menu File, rồi chọnView Code, cửa sổ VBA cũng sẽ mở ra với This workbook được chọn sẵn:



Nhấn phải chuột vào biểu tượng Excel nhỏ bên trái menu File rồi chọn View Code


Rồi, nhập vào hai đoạn code sau đây:

PHP Code:
  Option Explicit
--------------------------------------------------------------------

Private Sub Workbook_Activate()
On Error Resume Next
With Application.CommandBars("MyCustomToolbar")
.Enabled = True
.Visible = True
End With
On Error GoTo 0
End Sub

--------------------------------------------------------------------

Private Sub Workbook_Deactivate()
On Error Resume Next
Application.CommandBars("MyCustomToolbar").Enabled = False
On Error GoTo 0
End Sub

Bạn có thể thay thế “MyCustomToolbar” bằng cái tên mà bạn đã đặt cho thanh công cụ tự tạo của bạn. Sau đó bạn nhấnAlt+Q để trở về Excel.

Để thử, bạn hãy mở thêm một bảng tính nữa, Book2.xls chẳng hạn. Bạn sẽ thấy, khi nào bạn chọn bảng tính mà có đoạn code ở trên, thì bạn mới thấy “MyCustomToolbar”, còn nếu chọn Book2 (chuyển đổi qua lại giữa các bảng tính bằng Ctrl+Tab),“MyCustomToolbar” biến mất! Chọn lại bảng tính ban đầu, “MyCustomToolbar” xuất hiện lại. Vậy là thành công rồi!

Được voi đòi tiên. Bây giờ, giả sử bạn muốn rằng, trong cùng một bảng tính, nhưng chỉ có Sheet1 thì mới thấy“MyCustomToolbar”, còn Sheet khác thì không?

Được thôi. Bạn có thể viết thêm một “Level” nữa cho đoạn code trên. Hãy bảo đảm là bạn đang chọn bảng tính có chứa code (tốt nhất là bạn đóng cái Book2 đi). Quay trở lại cửa sổ VBA, bạn hãy nhấn phải chuột vào Sheet nào mà bạn muốn thấy“MyCustomToolbar”, rồi chọn View Code (hoặc nhấn đúp vào tên Sheet đó cũng được). Ở đây tôi giả sử bạn chọn Sheet1.

Nhập vào hai đoạn code sau đây:

PHP Code:
 Option Explicit
--------------------------------------------------------------------

Private Sub Worksheet_Deactivate()
On Error Resume Next
Application.CommandBars("MyCustomToolbar").Enabled = False
On Error GoTo 0
End Sub

--------------------------------------------------------------------

Private Sub Worksheet_Activate()
On Error Resume Next
With Application.CommandBars("MyCustomToolbar")
.Enabled = True
.Visible = True
End With
On Error GoTo 0
End Sub

Rồi nhấn Alt+Q để quay lại Excel. Bây giờ, bạn hãy dùng chuột hoặc nhấn Ctrl+PgUp/Ctrl+PgDn để chọn qua lại các Sheet và xem thử cái gì xuất hiện trên màn hình.

Xin đính kèm theo đây bảng tính đã có sẵn những đoạn code nói trên, cùng một “MyCustomToolbar” làm ví dụ.
Cũng xin nhắc lại, chiêu này chỉ có tác dụng với những phiên bản trước Excel2007.

mã nguồn: giải pháp Excel (GPE)

Comments off

Cứu dữ liệu từ một bảng tính bị lỗi


Khi bảng tính bị lỗi (corrupt), bị hư, nghĩa là bạn bị mất hết dữ liệu, mà nhiều khi sự mất mát này còn đau hơn là mất tiền. Chiêu này sẽ giúp bạn một vài cách để phục hồi lại phần nào dữ liệu trong những bảng tính bị lỗi.

Một bảng tính đôi khi gặp phải những lỗi mà bạn chẳng hiểu vì lý do gì. Điều này có thể đem lại cho bạn những vấn đề trầm trọng, nhất là khi bạn bị hư một bảng tính quan trọng mà bạn chưa hề sao lưu dự phòng. Do đó, bài học đầu tiên là: Luôn luôn sao lưu bảng tính của bạn vào một nơi khác. Nhưng trong thực tế thì không phải ai cũng nhớ điều này, và, có thể là bảng tính của bạn sẽ bị hư trước khi bạn nghĩ đến việc sao lưu!

Tuy nhiên, bạn đừng thất vọng quá, vì cho dù bảng tính của bạn bị lỗi, đôi khi bạn vẫn có thể mở được nó ra và có thể làm được cái gì đó…


Khi bạn vẫn còn mở được bảng tính

Khi bạn vẫn còn có thể mở được một bảng tính bị lỗi, thì trước khi làm bất cứ điều gì, bạn hãy sao lưu ngay ra một bản khác, nếu không, có thể bạn sẽ mất luôn nó. Vì nếu còn giữ được bản sao lưu, bạn có thể cầu cứu được một sự giúp đỡ chuyên nghiệp hơn, khi bạn không thể làm gì nữa.

1.
Bạn hãy mở cái bảng tính bị lỗi đó ra, với phiên bản Excel cao nhất có thể, và lại nhấn lưu thêm một lần nữa, tuy nhiên điều này thì không cần thiết nếu như bạn đang dùng Excel 2007.


2.
Nếu như bảng tính đã làm bằng cách trên đây không hoạt động, bạn hãy cố gắng mở lại lần nữa và lưu nó dưới dạng HTML (Single File Web Page) hoặc HTM (Web Page). Rồi đóng nó lại, và lại mở ra, nhưng lần này thì lưu lại với dạng bình thường (*.xls chẳng hạn).


Khi lưu ở dạng HTML hoặc HTM, bảng tính của bạn sẽ bị mất những thứ sau đây:

* Với những bảng tính tạo ra từ Excel 2007:
– Những tính năng mới của Excel 2007
– Các PivotTable và các biểu đồ (chúng vẫn được lưu lại, nhưng sẽ mất hết khi bạn mở ra và lưu lại với dạng bình thường của Excel)
– Các VBA Project.

* Với những bảng tính tạo ra từ những phiên bản trước Excel 2007 (Excel 2003, Excel XP,…):
– Những định dạng số chưa dùng đến
– Những style chưa dùng đến
– Các thiết lập Data Consolidation
– Các Seriano
– Các công thức sử dụng ngôn ngữ tự nhiên, chúng sẽ được chuyển đổi thành các tham chiếu dãy bình thường
– Các hàm tự tạo
– Các định dạng gạch ngang chữ (strikethrough), chỉ số trên (superscript), chỉ số dưới (subscript)
– Các thay đổi có thể hồi phục (bằng lệnh Undo)
– Các thiết lập định dạng trang cho các biểu đồ đã được nhúng trong bảng tính
– Các danh sách cài đặt cho các ListBox và ComboBox
– Các loại định dạng có điều kiện (Conditional Formatting)

Ngoài ra, các bảng tính được chia sẻ (shared workbook) trong những phiên bản trước Excel 2007 sẽ không còn chia sẻ được nữa. Với các biểu đồ, những thiết lập cho “Value (Y) axis crosses at category number” trên tab Scale trong hộp thoại Format Axis sẽ không được lưu, nếu như tùy chọn “Value (Y) axis crosses a maximum category” được chọn; những thiết lập “Vary colors by point” trong hộp thoại Format Data Series cũng không được lưu nếu như biểu đồ chứa nhiều hơn một Data Serie.


3.
Cuối cùng, nếu như bảng tính đó vẫn không hoạt động, hãy cố gắng mở lại bảng tính đó một lần nữa, và lần này thì lưu nó với dạng SYLK (loại tập tin có đuôi là *.slk – Symbolic Link). Nhưng hãy nhớ rằng, khi bạn lưu ở dạng này, thì chỉ có Sheet hiện hành (active sheet) được lưu, do đó, nếu trong bảng tính có nhiều Sheet, bạn hãy làm thêm vài lần, với mỗi lần một Sheet, nhớ đặt tên cho nó sao cho dễ nhận biết. Rồi lại mở cái bảng tính *.slk đó ra, và lưu lại với dạng bình thường (*.xls chẳng hạn).


Khi bạn không còn mở được bảng tính

1. Nếu như bảng tính bị hư của bạn không thể mở ra được nữa, bạn hãy thử dùng Microsoft Word để mở nó. Nghe thì có vẻ buồn cười, nhưng đôi khi, bạn có thể copy được một vài dữ liệu trong bảng tính này (dĩ nhiên tất cả những định dạng, công thức, v.v… thì mất hết).

2. Bạn hãy mở một bảng tính mới, và tạo cho nó một Extenal Link (liên kết ngoài) đến bảng tính bị hư. Ví dụ:

=’C:\Documents and Settings\BNTT\My Documents\[ChookSheet.xls]Sheet1′!A1

Copy liên kết này vào những ô khác (số lượng bao nhiêu thì tùy thuộc vào trí nhớ của bạn về cái bảng tính đã bị hư, nó có bao nhiêu hàng, bao nhiêu cột…), và cũng làm tương tự cho những Sheet khác (nếu cần thiết). Nếu bạn không nhớ được bất kỳ tên Sheet nào trong bảng tính đã bị hư, bạn cứ tạo đại một Sheet với đường dẫn chính xác, Excel sẽ hiển thị tên của Sheet khi bạn nhấn Enter. Có thể bạn sẽ thấy được gì đó…

3. Nếu hai cách trên không đem lại cho bạn điều gì, bạn hãy vào trang web Openoffice.org, download phiên bản miễn phí của bộ phần mềm này về. Ngoại trừ các tên trên menu và toolbar, Openoffice.org khá giống Excel, vì nó được tạo ra cùng một cấu trúc bảng tính với Excel (có đến 96% các công thức trong Excel có thể sử dụng trong bảng tính của Openoffice.org).

Sau khi đã download phiên bản miễn phí của Openoffice.org, bạn cài đặt nó vào máy. Rồi dùng nó để mở bảng tính bị hư của bạn. Trong khá nhiều trường hợp, dữ liệu của bạn sẽ được phục hồi. Tuy nhiên, những VBA code thì không còn gì cả, vì các VBA code của Excel không tương thích với Openoffice.org.

4. Nếu số bạn quá đen, không thể dùng Openoffice.org để cứu dữ liệu, vẫn còn một cách nữa, nhưng bạn phải mất tiền. Một trong những chương trình có thể phục hồi khá tốt những bảng tính bị hư là Corrupt File Recovery. Bạn hãy tải và cài đặt phần mềm này, chạy chương trình ExcelFix, nhấn Select File, chọn bảng tính bị lỗi, và nhấn Diagnose để phục hồi. Bạn sẽ thấy thành quả của mình, và có thể lưu lại bảng tính, nếu như bạn đã trả tiền bản quyền, còn nếu chưa trả tiền bản quyền, thì bạn chỉ có thể xem chứ không thể lưu lại.

mã nguồn: giải pháp Excel (GPE)

Comments off

Kiến trúc chung của chuẩn IEEE 802.11


IEEE 802.11 là một chuẩn hình thành bởi một lớp vật lý và một lớp địa chỉ MAC. Qua lớp này, chuẩn được giao tiếp với dữ liệu lớp LLC IEEE 802.2. Cấu trúc giao thức được miêu tả trong hình 1, lớp vật lý thực hiện một trong ba chức năng:

•  Trải phổ nhảy tần (FH-frequency hopping).

•  Trải phổ trình tự trực tiếp (DS-direct sequence).

•  Hồng ngoại (IR-Infrared).

 

 

Hình: 1 Lớp giao thức

Hệ thống được cấu thành từ các thành phần:

  • Trạm (STA-Station): là nơi truyền thông, thông thường là trạm lưu động.
  • Điểm truy cập (AP-Access point): là trạm trung tâm đặc biệt làm nhiệm vụ điều hành lưu lượng, trạm này thường hoạt động ở một kênh cố định và một vị trí cố định. Điểm truy cập có thể được nhìn thấy nhờ sự phối hợp bên trong của một nhóm trạm.
  • Cổng kết nối (PO-Portal): là một điểm truy cập đặc biệt, giúp liên kết chuẩn IEEE 802.11 WLANs và chuẩn 802.x của mạng LANs. Vì vậy cổng kết nối đưa ra sự hợp nhất về mặt logic giữa hai kiểu kiến trúc mạng trên.

Tất cả các trạm, điểm truy cập, cổng kết nối tạo ra cấu trúc giao thức ở hình 1 nhưng chúng lại thực hiện các chức năng khác nhau.

Comments off